Это нормальное поведение. На порядок следования в таких циклах полагаться нельзя.
Перевод руководства по Lua 4.0Порядок, в котором элементы таблицы будут пересечены, неопределен, даже для числовых индексов. Если Вы хотите пересекать индексы в числовом порядке, используйте числовой вариант for.
Странно может показаться на первый взгляд, но, если вдуматься, то можно понять, что порядок не всегда будет однозначным, т.к. индекс может быть любого типа.