I believe the error started because of insufficient training in English phonetics among Indian subjects. It seems plausible that when some British surveyor first heard the word Karnatak he (most likely not a "she") spelled it correctly as Carnatic, with the vowel 'i' pronounced as in "sir" or "first". Over the decades and centuries, Indians reading just the spelling and being trained to pronounce the 'i' mostly as in words like "fit" and such, started pronouncing Carnatic like we do now. In the process the word Carnatic has acquired an almost english adjectival ring to it...like pathetic or idiotic

Another Indian name/word that used to be spelled in English with an 'i' in the place of an 'a' is the Bengali name Sarkar which was often spelled as Sircar. This is less in vogue after independence. In the old days I think Karachi used to have an alternative spelling "Kirachi".
The trouble is that the english language does not have the concept of long and short vowels like we do in India. So "Karnatak" or "Carnatak" might have ended up sounding a little "tachy" with the last syllable "tak" being pronounced as in the word "tachy". So the original British spellers did their best under the circumstances.
Today, Indians can pronounce my last name shankar correctly, thanks to their poor training in english phonetics. But everybody else in the world calls me "shaankahr". So much so that I myself do so to speed up transactions with an airline booking clerk, say. Ideally my name should have been spelled "shunker" or some such. But then Indians would distort it beyond recognition.
Take the original names of the little satellite towns of Kolkata...Baranagar and Chandernagar. The old British spellings for these towns - Baranagore and Chundernagore respectively - were perfect phonetic representations of the Bengali pronunciations of those names. And yet, I've heard people make fun of those spellings as if it were some quaint British distortions.