Let's just look at some numbers: there are currently about 200,000 (reported) job vacancies in Canada. The labour force (that is, people either working or looking for work) is about 19,200,000. Of this number 14,500,000 have full time work, 3,400,000 work part-time and 1,300,000 are unemployed (but seeking employment). I find it incredibly hard to believe that of these 200,000 openings, none of the 1.3 million unemployed Canadians are qualified to take these jobs (and given that half of all TFWs take low skilled occupations makes me doubt it even more). What's more likely is that these jobs are not attractive to Canadians because they are either part-time, pay a low wage or require re-location (and probably offer no security of tenure, pay terribly or are temporary--or all three!). To get these workers into the workforce you have to increase the price of labour. But the TFW program gives employers a wage around this. I hate how this dialogue is framed by "Canadians think they're too good for these jobs" rather than "Employers don't think Canadians deserve higher wages". It's bullshit.
I wouldn't disagree at all that immigration is required for Canada to continue to grow economically. But immigration in the traditional sense is very different from immigration TFW style. Traditional Immigrants typically move with the intention of staying long term and this is more often than not a net benefit to the country. TFWs, by contrast, are here temporarily and during their stay they remit millions of dollars of potential consumption each year back to their home countries. They kind of act as a band-aid solution for Canada's more endemic problem of lower birthrates and dropping levels of traditional immigration.