Cabotage. Other than the EU, no country lets other country's airlines fly their domestic routes, including the US. Canada allows 49% foreign ownership of airlines, the US only 25%. One of the reasons it costs more to fly in Canada is it is user pay. Major airports in Canada are on federal land and airport authorities pay hundreds of millions in rent to the feds every year. Airport security, air traffic control, all add to cost of your ticket. All services paid for by government in the US. Also, many of our airlines costs are in USD but revenues are in CAD. Our professional sports teams have the same problem.
If foreign carriers were allowed to fly domestic routes in Canada, they would cherry pick the most lucrative routes between major cities, Vancouver, Calgary, Edmonton, Winnipeg, Toronto and Montreal and the rest of the country could go to hell.
In a country the size of Canada, air travel is critical infrastructure.