1) Indirect flights tend to be cheaper than direct flights EVERYWHERE as airline A wants you to fly with them via hub AA instead of airline B via BB
2) Little competition on direct routes
What Alan says, plus the added feature that flights to Canada via the US are extra inconvenient, as you have to clear US immigration and customs en route. So those routes have to be priced cheaper.
If you do choose a route via the US, allow at least 3 hours transit time in order to clear US formalities and security. And, though it's okay to search for options on the likes of Kayak, book your flights directly with the airline. Best after sales service as you cut out the third party middleman which with online bookers can be horrendous.
Just to add if you are not a US citizen then you will need an ESTA or visa (subject to your nationality) to enter the US even if only in transit.
And stay away from Cheapoair unless you want a lot of hassle.
There's very little competition on flights from Canada to Europe. The US has four major international airlines, United, American, Delta, and USAir, at least until the American/USAir merger. From a US city to any major European destination, you can usually choose from at least a couple of these, plus one or more European airlines. In Canda, the only non-European option is Air Canda. With fewer airlines flying, there's less competition on direct routes to Canada than on direct routes to the US.