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