Canada has a lot of talent. It also has to deal with the structure of the team. This year they went with the best of the best available rather than having more role players like in past years.
This year Canada has some top talent that didn't make it to or go far in the playoffs this year. (Crosby, Giroux, Seguin for example). Also by having healthy players like Ebs and Hall playing as well definitely helps.
Imagine if Getzlaf and Perry, Price and Subban were playing. It would a way stronger team. Only 3 players playing for Team Canada played in the last Olympics.
Three major differences, IMO:
1) It primarily comes down to effort level. Any Canadian player would dive in front of a Chara slap shot with their face if it meant gold at the Olympics. At the WHC, they are there to travel Europe, have fun with the boys outside of their club team, and play some looser hockey. The will to win is toned down a few notches. It shows in the level of play.
2) Where Canada excels at the Olympics is that the players are not only star scorers, but are guys who are elite two-way players (e.g., Toews, Carter, etc..) and great PKers (e.g., Bergeron, Marleau, etc..). That versatility and depth of talent is what separates the Olympic teams from the less-balanced line-up of star scorers that head over to the WHC. While Hall, Eberle, and Spezza are great offensive players, they do not offer the overall level of play that Carter, Benn, and Getzlaf provide.
3) The Olympic team has insane defensive depth. When Doughty anchors your second pairing, Pietrangelo your third, and Subban is a healthy scratch, you know your team has great defensive depth.