Restaurants and hotels are not really trying to rip you off - well, not by as much as you think - by offering a bad exchange rate. Taxis - well, they are definitely trying to rip you off with a 10-1 exchange rate. Mexico imposes a currency exchange tax on businesses that exchange a lot of dollars. I think that the limit is $1500 dollars a month tax free, but once a business exceeds that amount, they pay a tax to Mexico (I don't know what the rate is) on every dollar they exchange over that limit. So, while Mexican restaurants, hotels, gift shops, etc. will always gladly accept your dollars, the exchange rate they give you has to be low enough so that they still come out ahead after the currency exchange tax. Pay in pesos, you'll save money and be doing a favor for the businesses you deal with.