Long story short, Canadian government is the only purchaser of prescription drugs in the country, giving it complete monopoly power.
We have single-payer health care, but when it comes to prescription drugs, our system is very similar to state-side. Prescription drugs are only covered by the single-payer plan when you're in hospital: when a Canadian doctor writes a prescription to a patient in his office, the patient has to go to the pharmacy to fill it, and pay either out of pocket, or get it covered by a private, or sometimes public plan, similar to your medicaid.
So pharmacies buy their drugs from drug companies. Some drugstore chains, like Shoppers, for whom I used to work, have large buying groups, as do hospitals. And the provincial governments - who run health care - do buy some drugs. But there's no massive government drug inventory, other than some stockpiles against biological terrorism, like for anthrax. And I imagine your government has similar stockpiles. Oh, and they buy the vaccines.
Which doesn't really answer the question posed by the o/p. I think it's because provincial governments have formularies which limit what pharmacists can charge, and in turn pharmacists can't buy these drugs from drug companies for more than they can charge, and stay in business. So drug companies' prices for their products are limited by the provincial drug formularies.
In a nutshell, why do Americans pay more? Because drug companies can get away with charging more to Americans.