Canada's drugs are cheaper for a reason. The Canadian federal government negotiates with the pharmaceutical companies on behalf of the whole country for brand name drugs and are now beginning to negotiate for generics as well. They go to the drug companies and say, "if you won't charge less to our patients, then you can't sell your product here at all".
The United States does not do this. Instead Congress has legally forbid the Secretary for Health and Human Services from negotiating on behalf on all Medicare patients. US patients must accept the market rate for the drugs instead of a much less expensive negotiated rate. As one might imagine, an individual has next to no negotiating power as compared to a collective group.
That is just downright silly.