Credit cards will often give you a better exchange rate. In my experience HSBC gives the best exchange rates for banks in Canada🇨🇦. Most Canadian🇨🇦 businesses will take US 🇺🇲 dollars, for the convenience of customers, but you might lose up to 5% because nobody keeps track of current fluctuating exchange rates. Canadian🇨🇦 vending machines, and parking meters will usually take US 🇺🇲 coins at par.
Crappy US 🇺🇲 dollars are much more likely to be counterfeit, as they are not as high quality nor as modern / advanced as Canadian🇨🇦 or Mexican🇲🇽 currency.
I am Canadian, and my bank does it for free as long as I go to MY bank. The same goes if I use my debit card in the US. Other banks and money exchanges will most likely charge something.
Anytime I have to buy stuff in US$$ I always check a currency converter to see how much it will be in Canadian $$. Small amounts are not too bad. Larger amounts can sometime be a little too much. I can remember several years ago when CAD and USD were at parity and I never needed to check any currency converter chart. I wish we were back at parity again.