It is advisable to exchange money before you arrive in Mexico, so you have pesos upon your arrival. Most taxi drivers and many restaurants and vendors [but not all], will accept US currency, but you will be losing every time you pay with it. How does that happen?
Every local vendor will exchange at a rate of their own choosing; there seems to be no standard enforced. Since the value of major currencies (USD, CDN, EURO, etc.) is always fluctuating, the exchange rate for 1 USD changes almost daily. As an example: your bank may exchange your money at home at 17 pesos to 1 US dollar, whereas a local restaurant or cab driver will exchange at 12 pesos to 1 USD. This would be a loss of nearly 30%. Why use pesos in this case and lose 30 cents on the dollar if you don’t have to?
You may choose to do cash exchange right at the airport or at a exchange booth somewhere in Playa. This is a viable option [you will need to bring your passport with you], but note that these places, especially the airport, will take a larger percentage than other places.
Probably the best option for getting cash while in Mexico–at bank machines–also comes with a caution. Using a trusted ATM is your best and most efficient way of getting pesos. The ATM should (be cautious of this) charge you around $35 pesos for your transaction and, depending on your bank, they may or may not charge you an international fee. However, they will always give you the best exchange rate available.
Word of caution: Be careful when choosing which ATM to use. It’s best to use an ATM at a bank in order to avoid any possibility of identity theft. Don’t use free-standing machines that are in very populated areas, such as off of 5th Avenue. These machines charge exorbitant fees at best and will scam or clone your card at worst.