My preference is always to use local currency when ever possible. It avoids any confusion with exchange rates and the possibility of merchants giving a poor exchange rate.
Here in Playa prices, nearly all prices, are given in pesos and US dollars. This is nice for the cruise ships that dock here. In fact, most of the ATMs in Playa actually dispense US dollars! Great right? Well, maybe.
The problem is the exchange rates given. First, it is usually not as good as the official exchange rate that banks and credit cards give. Second, the merchant may take dollars but give change in pesos and that gives them a huge chance to take advantage of you. See the example below:
Bill was 140 pesos or $12 (the given exchange rate is about 11.7 which is not bad)
I paid $20 and was told change would be in pesos. No problem, i said. The change I got was 80 pesos. Which is only a 10 to 1 conversion of the change owed. So the true exchange rate I got was only 11 to 1, a bit lower than the norm.
Now, it is true, they are offering the money conversion service but not at a very good rate. I suggest using local currency whenever possible. Even building in the ATM fees, the exchange rate should be the official exchange rate and if you pull out enough at a time the fees should not be too bad.