Actually increasing places are taking major currencies as so many tourists turn up with big amounts of cash. It depends on the place, a lot of the shops in big malls will take them at nearly face value though - say 3.65 to the dollar instead of the fixed rate of 3.67 - in order to get your business. However, for every place that will give you a good rate there will be another place giving you a bad rate, say 3.5.
At worst, you can change at a pretty good rate at any currency exchange, would carry some dirhams on you as e.g. taxi drivers and the like will want local currency. Not that they can't change dollars easily, it's more to protect from being given fake currency.