Bharat(along with India) is a constitutionally recognized name. So it is actually used in official context. But the general convention is
India for English, and
Bharat for Hindi(and some other languages like Marathi).
> So why use a European name, shouldn't it be an "Indian" name.
It's difficult to answer. I think Indians usually don't have much problem with foreign words. The day-to-day Hindi is somewhat influenced by Persian and even the word for the majority religion (Hindu) has a Persian origin. But in case of English worded cities, it quickly becomes problematic as they were named during the colonial period.