All languages have names (-nyms) for groups of people. Our internal name for our group of people (very frequently just the word for 'people') is an endonym. Our external name for other groups of people are exonyms.
Your question is why doesn't every culture exclusively use everyone's endonyms?
There are tons of reasons, beginning with (a) most cultures around the world today and through most of history were not remotely as egalitarian and self consciously multicultural as the left wing of the modern West. Much more common than calling people by what they consider themselves to be, we call them by who they are to us and our in group. The most important others often even end up getting names meaning "others", "foreigners", etc. like the Gauls, Walloons, Welsh, Cornish, and Vlachs. Honestly, that's mostly fine because their names for us are frequently just as bad. It isn't really an issue until one language like English becomes such a dominant force that its names become a kind of standard, a binding bit of identity forced on the group. Even then it isn't an issue through most of human history (to the winners go the spoils and when in Rome...) but this is very much a bit of cultural imperialism and for many many reasons the West is trying to work its way out of that.
(b) We have very clear senses of who we are and who our dear friends are and who those sheep-stealing bastards over the hill are but everyone else? We don't know them from Adam and just pick up names from wherever. It might be their own endonym (France, Italy) or it might be the exonym that we pick up from their closer neighbors (Germany, Greece) or from the explorers who first told us about them (China, Japan). This is why English makes such a hash of nationalities, with some mostly near England using Germanic -ish and -ch, many others using Latinate -an and -ian, and others picking up both Italian and Portuguese -ese, Arabic -i, or Persian -stani. Sometimes names come from completely bungled first meetings: What's that over there? Someone tries to say "a village" but it gets put into the logbook as the new land of Canada; "Mazu's temple" ends up renaming Aomen Macao; etc. Once the name reaches a certain critical mass within a language, though, that's just what the name is for its speakers, regardless of where it came from.
Whatever the origin of the name, (c) there are many cases where endonym or exonym it still gets damaged by the fact that every language has certain preferred sounds and orders. Modern Greek approximates the sound b by putting mp together (Mpachrein for Bahrain); Chinese has a set syllabary (Meilijian for America) and prefers clippings (Mei); and over centuries French and English turned Greek and Latin placenames ending in -ia and -eia into terser -y or -e. In a few cases, the names can even be directly calqued from one language ot another (Island to Iceland, Grønland to Greenland, &c.). You can try to politely respect others' placenames but some will simply be too unnatural or difficult to pronounce that it could never replace the adapted form. Sometimes native don't even really understand their own name for their own place: Americans might mentally know Germany is Deutschland and might try to say the /ɔʏ̯/ even though it's an uncommon noise in English. They won't know and the Germans often won't know to tell them that the sound written -land actually ends with a /t/.
I'll expand on the question a bit if i am allowed. I understand that there are different names in different languages, like Scotland is Scozia in Italian. Germany is Deutschland in German but Germany in English, Germania in Italian etc. Irrespective of language, what is the reason why we choose to refer to countries as our version of their name. Some of the differences are minimal but things like Greece being Hellas in Greek or Sweden being Sverige in Swedish seem almost disrespectful to the countries.