Retailers that take foreign currency give a lot less for exchange rate, don't accept coin, and you Cdn in change, back. But it is convenient, and the exchange rate means that the goods are still cheaper.
For reasonable exchange rates, I have found that our local payday loan place, is, ironically, one of the cheapest and best values for cash to cash exchanges for amounts less than $500.
It is on par with the less expensive, hard to find because they are in a stripmall in suburbia (i.e. not at the airport or tourist areas) cash exchange places. The spread was about half of what the banks were taking on thier "no fee" cash exchanges.
All casinos charge at least $5 for withdrawals, because they have a captive, desparate client base. This is not an ATM fee by the banking system.