The reason (as was explained to me) for them giving a higher exchange rate is,that they work for the drug lords who need hard currency. Basically they are laundering the money before its taken out of the country. A few points for a drug lord is nothing. There is a guy that makes his rounds every day. he doesn't short change people (counter productive to his business). He knows all the employees, and they are happy to see him.

I wouldn't change money on the street