Although I am American, I have lived in Canada and interacted with a LOT of Canadians. As I was thinking about my answer to this question, I considered saying that Canadians are friendly because Canada in general is a ruralized country (at least, the central part of Canada, where I was living, is more ruralized than where I live now). People in rural settings have more time and know fewer people, so they are used to offering you something to drink and inviting you to chat for a while. In addition, people know how cold the winters are so if you are out during the winter they seem to take pity on you and let you come in to warm up.
However, I'm not sure this is the total answer to the question because I actually lived in two places in Canada: Winnipeg, Manitoba (a smallish city) and Fort Frances, Ontario (a very small town). In my memory, people in Winnipeg were more likely to invite us in and offer us something to drink than people in Fort Frances. So perhaps the ruralization factor isn't everything.
In addition, it could be the influence of other cultures on Canadian culture, since there are so many people from other cultures in Canada. For example, Filipinos (which make up about 10% of the population of Winnipeg) are particularly known for being hospitable; they will always feed you when you come to their houses.
Of course, if you are outside of Canada and the United States, people might just like Canadians better in contrast to Americans, since so many people have issues with United States foreign policy but don't have as many issues with Canada.