The rule of thumb is to pay in the currency that the price is quoted in. It's usually better to pay in colones.
Hotels usually quote rates in dollars, so it's better to pay in dollars. If paying in colones, they will usually convert the dollar amount into colones using an unfavorable (to you) rate (for example 525:1). So your $70 room now costs ¢36,750, which is really about $73. That's how they get you. They get you the same way when paying by credit card. They usually have to put the charge through in colones, so they convert the dollar total to colones using the same high rate (525 or 550...
: )
There is one MP where it's BETTER to pay in dollars. New Fantasy. As of a few months ago, it was $50 US or ¢30,000CRC (which equals about $60) per hour.