I will go to Canada for the first time from the United States. I will use credit card as much as possible but I guess I need cash for small shops and cafes anyway. To avoid exchange money back and forth and ATM fees, I plan to cash some money in USD and carry it with me. As of today, 1 CAD = 1.0086 USD so it should be easy to convert currency. Do small retail stores in Toronto accept USD in cash? If so, how are their exchange rates?
Usually, yes. But now that the US dollar isn't more valuable (and is fluctuating wildly from week to week) I've noticed more places not taking it or taking it at a steep discount. You won't get the value you used to out of it.
It's always a good idea to have some local currency on hand no matter where you're going. A credit card will also work, though there can be fees and poor exchange rates on that too depending on the card. Also if you intend to use it, call up the credit card company and tell them where you're going so you don't trigger an anti-fraud security check.