I have a lot of fun with this particular question. I often ask other people for their opinion regarding the matter - especially from those who have been to Queensland and have perhaps been corrected by an Aussie on their pronunciation of this particular city name. Though it is not a serious issue, I have found myself playfully debating the matter with others, who will often instantly have an opinion.
A good deal of the people I've met who have been to the city will argue fervently that the proper pronunciation of the city name is "cans." Naturally, they spoke the name "Cairns" with their Canadian or American dialects as "kairnz", only to be corrected by the locals. So they have since gone on to pronounce the city name as "cans".
Now, it seems to me that there are a couple of problems with this. First of all, the vowel sound "A" as in "apple" as used by North Americans in the word "cans," is not the same as how Australians pronounce the same vowel sound in "Cairns". Their pronunciation of the name is actually more of an "e" sound, as in that of "effort." As such, it should be pronounced by North Americans more like "kehnz."
Secondly, pronouncing the name as "cans" is inconsistent with Canadian or American dialects. For people with such dialects, being corrected to adopt the Australian dialect for one word, which happens to be a geographical name there, seems unreasonable. For instance, take the word "cairn". A "cairn" is a pile of stones which often serves as a marker on a route. As one who spends much time on mountain trails, I often follow the "cairns" to my particular destination. Why is a city which happens to be spelled the same granted a special pronunciation just because a certain group of people happen to pronounce it that way? Because the people of Cairns pronounce the name a certain way, does that make their particular way of saying it objectively correct? Surely we as North Americans wouldn't correct them for pronouncing a city such as Vernon like "Vehnon" according to their natural dialect - it's just how they say it.
Or suppose we have a North American who has adopted this new way of pronouncing the name say "I'm going to the Cairns Airport." Both "Cairns" and "Airport" are supposed to have the same vowel sound, right? Would it not be entirely inconsistent to then say "I'm going to the CANS AIRport? Of course it is. As North Americans, we pronounce the "r" sound in the word "air," whereas it is unnecessary in many other English dialects.
So not only do we have most folks mis-pronouncing Cairns as "cans" when it should be more like "kehnz," but the attempted imitation just for the one word turns out be inconsistent anyway. If a person is going to try to alter their dialect for the one word, why not just try to imitate the whole Aussie dialect?
Invariably, other issues such as the inconsistency of the rules of the English language or its constantly changing form come up as a result of this discussion. However, these do not directly relate to the matter of differences in dialect within the same language.
As such, if I were challenged to pronounce "Cairns" different from how I would say it in my particular dialect, I might bring up the topic and see what the person had to say about it, and to what extent they militantly insisted that I adopted their dialect to say the name. I mean, if they were going to cry about it, which I doubt they would, perhaps I would have to consider other options. And I am willing to be corrected, but until a stronger argument can be made for such linguistic antics, I am content pronouncing "Cairns" consistent with my dialect, as "kairnz."