1. If you have a problematic history (which includes things entirely outside of your control, like being born in the wrong part of the world[1]), it can be nearly impossible.
2. If you don't have a problematic history, it's incredibly stressful. If you're on a TN visa, you can be turned away at the border at any time, for any reason whatsoever, including no reason whatsoever. If you're on an H1B visa, you can also be turned away from the border at any time, for any reason whatsoever, including no reason whatsoever. If you lose your job, you need to immediately start dealing with immigration issues, while looking for a new one, or you have to leave the country.
3. If you're married, your spouse can't work for a long time.
4. If you aren't married, your girlfriend/boyfriend/whomever can't even try immigrate with you, even if they wanted to.
5. Being three hours and a border away is not remotely the same thing as being three hours away from your friends and family.
6. There is a long, long, long list of cultural reasons for why a comfortably-living Canadian may prefer to avoid living in the US, even for double the paycheck.
[1] I had a friend whose family fled from Saddam's Iraq, due to their political activities, when he was a child. As an adult, he was consistently singled out for harassment, intimidation, and delays during his crossings at the US-Canadian border. [2] According to him, getting a work visa in the US was not remotely a possibility.
[2] Isn't it wonderful how passports list your country of birth?
When you're working for the same company, the gap exists bcause the company can get away with it. What are you going to do? Go across the street to a competitor who pays just as little?
I worked for an above-market-rate firm in BC. When I got a job offer in SV, my boss could only counter-offer the financial gains if I relocated to their SV office.