We have a highly unionized workforce with a bad case of gimme gimme gimme with no thought for anything else. It is a basic of socialists that the world owes them a good living regardless of how poor their performance is. This attitude has caused the elimination of none government jobs because it is more cost efficient with better quality control to produce elsewhere.
Problem #2 is the overload of government regulations and taxes that makes Canada a high cost place to do business.
I considered unions as a possibility until I noticed that most of the nations that rank ahead of Canada are even more unionized. Check this list. I don't think that unions can be blamed for this, much as many love to bash them, especially as most unions in Canada are public sector rather than private sector.
Trade union membership statistics - countries compared - NationMaster
Here is a graph comparing worker productivity.
File:OECD Productivity levels 2007.svg - Wikipedia, the free encyclopedia