I think I can give you a few pointers that can help as I had to make the decision myself.
USA and H1B is better if,
1. You are interested in a corporate career
2. You already have H1B and a job with a company that treats their employees ok (Ok is the new good
).
3. You will earn around 25% more in US than Canada and have access to a bigger job market.
4. Most H1s get GC Card in US.
Moving to Canada is better for the following reasons:
1. If you are more interested in starting a company.
2. Your spouse cannot work in USA without an H1B (They can, if you apply for GC and get EAD, but that will lock you with your company for 5 years or pay the GC Fee or something like that).
3. In US, you will be restricted in the jobs that you can apply to when you are in H1. Not all companies or positions are open to H1.
Now if you have a US GC, I don't see any advantage to Canada vs USA. I have seen others make arguments for Canada politically and on security, but I don't think they are that big an advantage. Both are great countries for immigrants and US will always hold the edge due to its economic prowess.
I have decided to move to Canada as I need the freedom to do anything rather than having restricted H1 for another 5 years.