My experience is that credit cards are taken at larger, more touristy restaurants and at (some) dive, snorkel and tour operators but are not widely accepted otherwise. The food markets take local debit cards but I'm not sure about foreign credit cards. American Express is pretty much useless here.