This is a personal conclusion having work in both, some US and some Canadian based companies. What I realized, the reason we are pay less in Canada, is caused by our perceived value from management.
In the American company, the managers want me to succeed because that is directly link to their success. I'm part of the team, I'm accountable, but I had more freedom.
In the Canadian one, managers want all the credit (pay+bonuses+recognition), because they are the incredible one who made the monkey produce the value. I'm part of a pool, managers will decide what programming language I'll program in, he's managing the risk after all. Oh, and by the way, it was a hard year, not all goals where reached, so they need to cap the bonuses, but the company is glad for the all-time profit record.
Of course, it’s a bit of a caricature. It surely applies to US or Canadian company. But our perceived value struck me in all my employers.