When you are 100% sure there is no existing translation, do a bit of research and see how that animal is named in different language families. For example, the kingfisher is Eisvogel in German, IJsvogel in Dutch, Kungsfiskare in Swedish, Martin-pêcheur in French, Martin pescatore in Italian, and Αλκυόνη in Greek. So there are three distinct patterns:
- "ice" + "bird" in the Germanic and North Germanic languages (except Swedish)
- "king" + fisher" in English and Swedish
- "martin/swallow" + "fisher" in the Romance languages
- The genus is alcedo (from the Greek halcyon)
Possible options then could be glacibirdo, reĝofiŝisto, hirundfiŝisto.
The problem is that this is very much dependent on the hearer's original language. As a German I would easily understand glacibirdo, but a Spanish person might not have a clue what that was.
So in this case the actual Esperanto translation, alciono, is related to the Greek, which is equally removed from the common names in the Western European languages, but related to the genus of the bird, and thus can pretty easily derived/understood.
I apologise for the limited selection of languages I am discussing here. I have little to no knowledge of Central and Eastern European languages, and thus no clue what eg the Polish zimorodek means (in case it can be decomposed like the above examples). Maybe competent speakers can add other languages in the comments.