Roadrunner, I don't see the problem here. If you were looking to cash a check then of course you'd write them a check for ~$140 USD and they'd give you $200CDN. Yes, the exchange rate is bad, but just as bad as if you gave them $140USD in cash. In either case, you're paying (via the exchange rate) for the convenience. And just try taking your US check virtually any other place in Montreal!
On the other hand, it sounds like you wanted to put the $200CDN on your charge card. Why on earth should the hotel do this? They get dinged a couple percent on each charge transaction (i.e., Visa only pays them ~98% of the transaction amount). So by giving you $200CDN they would get reimbursed $196...you'd have to be a very good customer for them to see that as worthwhile.
Of course, they lose the same percentage when you pay for your stay with plastic, but at least there's a profit margin in their rates to cover that. On check cashing, there's no profit at all.
And if want a better exchange rate than the hotel offers, just use your ATM card at any bank. Less convenient, perhaps, but you'll get the best possible rate.