Isso não tem nada a ver com o comando convert - seu shell está expandindo o padrão de glob *.png antes de ser passado para o comando, e o faz na ordem de agrupamento léxico LC_COLLATE definido como parte do sistema atual locale .
Infelizmente, é difícil obter ordem numérica no bash shell (que é o que eu suponho que você está usando): se você não se importa de mudar para zsh existe a possibilidade de usar um numérico qualificador glob ou seja
convert -delay 20 *.png(n) animation.gif
Para uma discussão mais detalhada, consulte, por exemplo, as Perguntas e respostas relacionadas Glob com ordem numérica