What type of cash should I bring - MXN or USD?
Most businesses will accept USD, however, they are also within their rights to decline it, as Mexico's national currency is the peso. Please don't assume it's a some sort of scam if your USD are not readily accepted. Many people are not aware, if a business operates their bank account in MXN, they cannot deposit USD, so that U.S. cash immediately becomes something they must deal with separately .
Why was I given a tourist price?
Some people think they're being ripped off when they see two price lists, one in USD and one in MXN - and the MXN one works out to be a better rate. However, this is quite simple to explain; as the exchange rates fluctuate on a daily basis, most businesses that accept USD will set an exchange rate they're willing to offer on an on-going basis - and their price lists will be based on that. Of course this means, if the MXN pesos is stronger, you won't get as good an exchange. It's simply not practical for a business to set daily rates, especially for places that must print up price lists, such as bars or restaurants. Of course, this also means that when the USD is stronger, you'll get a better deal if using it. Businesses are legally required to post their exchange rates, so if you do happen to have both pesos and USD in your wallet, you may want to see what the business is offering on exchange first, before choosing which to pay with. If a business offers a low exchange rate and you want fair value, exchange your money somewhere else first or use the national currency.
FYI - Legally, businesses must price everything in MXN, so any place that automatically gives you an English listing with USD pricing, must have a Spanish one with pesos available upon request. If you are carrying MXN, be sure to request it to make sure you are billed the correct price. For example, an English menu if you need it (to read) and a Spanish one for the correct prices in pesos.
The store tried to scam me, saying I needed to buy more.
When using USD, you will receive your change back in pesos - because of this, many stores have operating policies with limits on how much they will give back for change. So yes, you may be asked to purchase more, before they will accept your U.S. bills. This is not a scam - this is simply store policy. The real issue is that it's sporadic with poor enforcement, so out of the blue, they may ask you to purchase more when they've never asked you any other days. Or, you may not have been asked before because you were spending a sufficient ratio of the USD total.
Can I get USD from the ATM?
Yes, some ATM's will dispense USD. Be aware of "dynamic conversion" fees. This is not a scam, they are bank fees which have become more popular in several countries, resulting in your bank fees for foreign withdrawls to be quite high. Be sure to check with your bank to see if this is a good option for you. As with anywhere, interior bank ATMs are always recommended for cash-withdrawl over stand-alone ATMs.
Why is there a "Local Discount" and why can't I get a discount?
This is straight up economics. Unfortunately, some people don't understand this and get upset that the discount is not offered to them.
Mexican wages simply do not compare to wages in Canada, the U.S. or many other countries. The cost of living in Mexico generally reflects this, however, the cost of living on Cozumel is substantially higher than other areas of the country. This is in part because it's an island and also because it's such a popular tourist destination. As prices creep up, the local wages cannot keep pace and little by little, locals find they cannot afford to eat, or go out to the places more affluent visitors frequent. It's simply out of their reach financially.
To help off-set the disparity, many local businesses offer a local discount, intended for full-time residents and Mexican Nationals who live here. Even with the discount, many residents do not go to restaurants or bars in the tourist area because it's still higher prices than what they can afford and find further back in town.