For Canadian residents, especially those with USD income but no SSN, TD Bank N.A. in the US is a good option. Using TD’s cross border service, you can use your Canadian address, SIN, and credit file to open a US-domiciled checking account. Their basic account is free as long as you keep $100 in it and comes with a Visa debit card with 0% FX markup. Through the same cross border service, you can also get their TD Cash Visa which has no annual fee, 0% FX markup, and gives 3/2/1% cashback on dining/groceries/everything else. This is a better package than any Canadian bank offers, including TD in Canada
Edit 2020-02-11: TD just raised the debit card FX fee on the basic Convenience Checking account from 0% to 3%
To get 0%, you now need the Beyond Checking account which requires $2500 minimum balance to waive monthly fees
Edit 2021-03-04: TD is introducing a 3% FX fee on the no nnual fee Cash Visa credit card as well at the end of this month
Their First Class Visa Signature will keep 0% FX fees but has a $89 annual fee