I went to Vancouver island to see Borchard Gardens (great) but when I spent USD there they always gave me change in Canadian coins. Refused to give me US coins, saying is was a rule or law, I forget which. Kind of a funny thing, not a big deal, but I wonder what little trick that is all for.
The rule or law in Canada that was referred to you (by the way in this case it is "law"), which the law states Canadian coinage and dollar banknotes issued by the Bank of Canada are "legal tender" in Canada, although transactions may legally be settled in any manner agreed by the parties involved....in which the US Dollar is the most traded currency (world reserve currency), and is also widely accepted in many places throughout Canada, however any business or merchant in Canada does reserve the right not to accept US coins, dollars or any other foreign currency.
Another thing to highly consider why businesses in Canada are reluctant to provide change back with the same foreign currency is :
The sale price of goods or services are quoted in Canada Dollars.
Not only would it put an additional task or strain on a business to again having to convert giving back correct change upon a foreign currency based on a sale price in Canada dollars, you also have a potential deflation value of being stuck with a foreign coin and currency that is not legal tender while to my understanding no bank in Canada will insure foreign currency deposits for that matter either until those funds are converted to Canada dollars.
The four foreign countries that I am aware of that utilize the US Dollar as legal tender are :
East Timor, Ecuador, El Salvador, and Panama.