You will always get the best rates at a bank, not at the booths at the airport. You will get much better rates if you exchange large amounts. The absolute best rates will be if you pay by credit card. There will be no difference between teh rate you get in Canada and teh rate you get in teh US. If there were then something called locational arbitrage would be possible and one could make millions of dollars risk free within a few minutes. Since you don't often hear of that happening it is pretty clear that rates must be the same in both countries.
You might find slightly different rates at different banks but that will mostly have to do with them charging higher fees. If it were me, unless I were chaning less than $100,000, I would just go to the most convenient bank and do the transaction. I would not go a check cahing place, western union outlet, or anything like that.