As Esperanto was designed to be a neutral language that took words from many (European) languages, it needed an orthography that would unambiguously denote those sounds.
You can trivially transliterate the circumflex letter with digraphs using h anyway. ĝ -> gh
Still perfectly readable.
If you want a language where there is a trivial and unambiguous mapping between written and spoken language and the sounds don't exist in basic latin script, you need to do something. You can use diacritics, you can use digraphs and other tricks or well you just give up. But saying they are "unnecessary complexity" is very mistaken.
Digraphs can still unambiguously denote sounds, but Zamenhof really wanted the canonical spelling to have one character = one phoneme.
And, ironically, it was easier to do it back then compared to the computer age, because typewriters did something similar to Unicode combining marks - specifically, on the French typewriter, you'd have a single key for ^ which was used to overtype letters where circumflex was needed. And since French typewriters were very common in all countries Zamenhof used circumflex for his letters (except Ŭ, seemingly just because).
As far as digraphs, using "h" can be ambiguous in some cases, which is why Esperanto digraphs are more often written using "x" these days when diacritics aren't available for some reason. I actually quite like that scheme for several reasons. The obvious one is that "x" is then strictly a modifier letter with no sound value of its own, like hard/soft sign in Cyrillic, so all digraphs are unambiguous. But also, there's a matching diacritical mark, "combining X above". So we could e.g. say that "cx" and "c̽" are the same thing, and you use the latter when possible falling back to the former when you need ASCII.
As Esperanto was designed to be a neutral language that took words from many (European) languages, it needed an orthography that would unambiguously denote those sounds.
You can trivially transliterate the circumflex letter with digraphs using h anyway. ĝ -> gh
Still perfectly readable.
If you want a language where there is a trivial and unambiguous mapping between written and spoken language and the sounds don't exist in basic latin script, you need to do something. You can use diacritics, you can use digraphs and other tricks or well you just give up. But saying they are "unnecessary complexity" is very mistaken.