Is it legal in Canada to have lists with single opt-in? (i.e., no confirmation link to click in a confirmation email)
This is not legal in Canada. As far as my learning of Canadian Privacy Protection Laws goes. You cannot spam/market/call anyone without his/her prior consent.
Canadian legislation doesn't specify "how" you do something, rather it specifies "why" and "what". The legislation requires that you contact people only if you have their consent, and the mechanism you follow is up to you. I doubt anyone can give you a straight yes or no answer as the law neither specifically prohibits nor endorses single opt-in lists.
That being said, although I'm not a lawyer, I think a good case could be made to say that you shouldn't add someone to a list unless you're fairly certain you have their consent (e.g. they told you in person, or emailed you directly, or you confirmed their address).
A non-confirmed opt-in would sit in a grey area that you'd have to work to defend. Since all legal advice I've ever received when dealing with personal information follows a "better safe than sorry", I'm going to pass the same along.
This actually goes along some appropriate general programming advice that I try to follow: Don't trust user input. Confirm everything :)