Pesos.
American money is ok if you already have some on hand in your drawers.
Otherwise Exchanging Canadian for US to go to Mexico will make you exchange money twice which is expensive.
If you have time, exchange a bit of Canadian to Pesos at a major bank here before you go. That entails going to the bank here and ordering some 3-5 days before heading out. That gets you through the airport and taxis and any incidentals.
When you get to Mexico, avoid the airport/independent or corner ATM's and head to Scotiabank ATM which are present in most places in tourist Mexico or the National Bank of Mexico and withdraw from these machines.
You just want some Peso's to get you by until you can get to a proper ATM there.
Always a contentious issue with travelling, but with money laundering and US dollars, the Mexican government has cracked down on US money. Last resort I stayed at actually preferred Canadian. This will depend where you're going in Mexico.
In my opinion and I agree with this blogger, take a few Peso's obtained through your bank to get you there, then do ATM there at a reputable bank.
If you exchange Canadian for American money before going, you're losing bucks.
Mexican people need to take US money to the bank and they lose.
Just give them Pesos, as they know. Much easier.
Couldn't imagine Mexican people coming here to Canada and expecting us to receive
Peso's and us having to exchange them.
I've been travelling to Mexico for years. Peso's are much better. It's their home currency. And most don't have the time nor travel to exchange money at a bank. Every cent counts for them as they make very poor wages.
Just my personal opinion.
https://www.tripadvisor.ca/ShowTopic-g154267-i323-k7133224-Pesos_or_canadian_dollars-Nuevo_Vallarta_Pacific_Coast.html
http://www.banderasnews.com/1212/to-savingmoneyoncurrencyexchange.htm