Usually your bank charge you $2-5 and the ATM owning bank charge you another $2-5. If you only take out like US$100 worth of peso (I think a lot of banks set a limit on how much you can withdraw per transaction too, mine used to be US$200), it's a big percentage. The airport exchange places usually add in a 10% premium on the exchange rate when you use them. So if you only take out a small amount from the ATM, you are not saving that much after the fees. So before you leave, go to your bank and tell them to increase your withdraw per transaction limit to $500. Change your pin to 4 digits (most ATMs outside US only takes 4 digit pins so if you have 6 digits, you maybe screwed).
theres a bank not too far down from the oasis.. i forgot the name of the place, but the fees weren't bad and it was inside the bank - so it was legit. you could even bring your drink inside! haha
Take cash, put it in your suitcase and padlock your suitcase. You then get a better exchange rate and don't get charged.
You will NOT get better exchange rates at exchange place than interbank exchange rates (the rate used when you withdraw peso from your bank account). Airport exchange places add on a 10-20% premium to the interbank exchange rate. Random tourist exchange places add on up to 40% premium. If you don't believe me, next time you are at an airport, right down the rate and as soon as you are near a computer, look up the exchange rate online.
I didn't mean exchange rate, i meant all the charges on top, that all but one UK bank accounts add on.