I think the optimum approach depends on what your goals are. If you plan to just use the forex card electronically (like a debit/credit card) and there are no transaction fees, the forex card makes sense. If you plan to use it to carry money to put in a bank in Canada - then any gains you get from the exchange rate can be wiped out by withdrawal fees (you're right that banks can impose additional fees for non-customer withdrawals). Do keep in mind that ATMs have withdrawal limits - you can do the math to see what works best for you.
In your place, I would either:
a) Just carry cash (in CAD), if it's not huge.
b) If I have more money, then take some in cash, then transfer the rest electronically
In both cases, it pays to shop around. Depending on where you live, there are probably quite a few options to change money and, depending on how much money you will convert, there may be some room to negotiate the rate a bit. For wire transfer, there are third parties who do transfers (I used Transferwise recently Singapore to Canada and found them good). You could always (if you have someone trustworthy in Canada) try a transfer for a small amount to make sure it works smoothly without your needing to be physically present in your home country.