As a desi, the best I can work out the etymology of the word is:

"Desh" in Hindi, or the languages that derive from Hindi (like Gujarati) means "country". The "i" suffix is something like "related to" or "is". Ex. The word for "fat" is "jardoo" and a "jardoodi" is a fat person (this is all in Gujarati, not Hindi, and even my Gujarati is so-so). So a desi (sometimes spelled "deshi") is a person from the "native land".

All of this is speculation from an ABCD who can speak but not read or write his parents' native language. Take it with the usual grain of salt.