The default shell of AIX is /bin/ksh (ksh88) and it uses an inefficient stack system. When you code the form "for i in <splat>" then ksh attempts to put <splat> on the stack. You're running out of memory. Splat.
However, ksh93 uses a different stack library that is more efficient and should work fine in this case. Other shells (like "bash") are more adept at handling such a large data set.
Wondering why ksh88 is not updated? It's the AIX default shell. All the system utilities, SMIT functions, etc. all use ksh. Changing the behavior even a little can have dramatic consequences.
You might also argue that IBM is simply protective of shell functions, or even just slow, since AIX's ksh93 is fairly far behind the opensource version. Or maybe the community is just that powerful...