Apparently lack of in-country manufacturing coupled with bad contracting:
To some degree, this is the natural result of living in a small country during an unprecedented global health crisis that has scrambled supply chains all over the world. Without much domestic manufacturing capacity to speak of, Canada had to sign advance-purchase deals with international vaccine companies. The country hedged its bet by mostly going with companies funded by Operation Warp Speed, and so far its strategy has been to overbuy doses in the hopes of securing enough to vaccinate all of its citizens. A mounting critique, however, is that perhaps Canada should have been more specific than “first quarter of 2021” in terms of arranging vaccine-delivery timing. [André] Picard [a health expert in Canada and a longtime columnist for The Globe and Mail] said that Canada, by not giving manufacturers a specific week, or even day, allowed them to push delivery until the outer limit of the quarter.
[...]
To Robert Van Exan, a lifer in the Canadian pharmaceutical industry, the reasons for the country’s vaccine shortages are as plain as day.
“Canada has watched its pharmaceutical industry slowly move out of here over decades, because they created an environment that was not conducive to investment in this country,” charges Van Exan, a semiretired vaccine-industry consultant who spent nearly 35 years at Sanofi Pasteur working on policy, immunization campaigns, sales, and product development.
He cites long-standing Canadian policies in three areas as being particularly antagonistic to vaccine makers, especially multinationals: patents, prices, and procurement.
Van Exan then blames the lower period of patent protection in Canada together with the largely single-buyer (=government) market for vaccines.
Frankly I find these analyses a bit shallow given what Israel was able to pull off in comparison... although pricing was probably an if not the major issue. Israel paid about double per Pfizer dose compared to what the EU pledged for instance; €23 ($28) per dose compared to €12.
The same Van Exan suggests Canada generally under-allocated funds for vaccines. I couldn't find all the details on what Canada was willing to pay for Covid vaccines (apparently the Canadian government decided not to release this info), but some initial reports suggest that Canada was actually paying more than either of US, EU or possibly even Israel per dose...
Health Canada told CTV News that Canada received 695,275 doses from both Moderna and Pfizer in January. On a per-dose basis that would mean the Canadian government would have paid roughly $34.51 per dose. [...]
In July, BNN Bloomberg reported that the U.S. government paid just over $24.50 per dose of the Pfizer vaccine and Reuters has reported the U.S. has paid $19.27 per dose for the Moderna one. [...] The Guardian, shows the EU paid $18.32 per dose for Pfizer and $27.48 per dose for Moderna.
(N.B. this last source priced everything in Canadian dollars, apparently.)
Although that's not really indicative of how much Canada pledged for the rest of the doses.