Regardless of what you think about the idea of an artificial international auxiliary language, Esperanto is very poorly designed as a language. Sure, it's easy to learn, because it has a small vocabulary and is very regular. But it's like a programming language designed by an amateur: full of bells and whistles and useless stuff that the designer thought would be cool, without regard to the actual challenges faced by language users. Let me explain a few ways that Esperanto is messed up.
One issue is that it's hard to pronounce. Not from the perspective of an English speaker or a speaker of another European language, but from a global perspective. The problem is that it has a lot of complex consonant clusters (sequences of consonants jammed together without vowels in between) which are fine for someone coming from Polish (as Zamenhof, Esperanto's creator, was) but which are nightmarish for people coming from languages that don't have these clusters. Consider for example Chinese, which has no consonant clusters at all. Consider the closest Chinese approximation to the Russian city name "Vladivostok": 符拉迪沃斯托克 fuladiwosituoke (note also that there's no /v/ in Chinese nor many other languages, despite /v/ being very important in Esperanto). A Chinese speaker is not going to find Esperanto easy to produce, with all kinds of Slavic-esque words beginning with kv- such as basic words like kvam (how). Esperanto also has a number of distinctions between sounds which will be lost by speakers of most languages. For example the difference between horo (clock) and hxoro (chorus), involving a distinction between /h/ and /x/ that most languages do not make. Basically Zamenhof was coming from Polish and he did succeed in making Esperanto's phonology simpler than Polish, but it's still very complex from a global perspective. An international auxiliary language should be easy to pronounce.
Relatedly, Zamenhof made up some new diacritics to spell these crazy sounds that he shouldn't have included in the language to begin with. ĉ spells "ch" in Esperanto and in no other language. If you want your language to catch on, why would you give it diacritics that no other language has, which people will have trouble typesetting and typing? Since Esperantists can rarely type ĉ and related glyphs, they end up typing cx, sx, jx, gx, etc. instead. Why not just ch or sh? Why not just ditch these sounds altogether?
There are lots of other issues. The verb endings -as, -is, -us for present, past, and future tense end up sounding very similar to each other in fast speech (and the idea of making a tense distinction by changing the form of the verb is very European to begin with). The accusative endings -n are so confusing that (so I hear) the native Esperanto speakers have dropped this feature of the language. There is grammatical gender in the pronouns, and adjectives must agree in number and case with nouns.
So to conclude the rant, ironically, if Esperanto ever does take over as an auxiliary language, it will be solely because it has the largest community of all the auxiliary languages, not because it is a good language. In other words, the same way that a normal language takes over. I guess it bugs me that it could have been done much better. It gives a bad name to constructed languages. Interlingua and Ido are big improvements, and you can also check out Lojban for a much more radical non-Eurocentric approach.
https://en.wikipedia.org/wiki/Interlingua
https://en.wikipedia.org/wiki/Ido
https://en.wikipedia.org/wiki/Lojban