в Bash тестовая операция выполняется для одного файла.
Я предполагаю, что в Ksh88 тест -a выполняется для одного файла, но не жалуется, потому что другие тестовые слова являются неопределенным условием для -a.
вы хотите что-то вроде
for K in /etc/rc2.d/K* ; do test -a $K && echo heck-yea ; done
Я могу сказать, что ksh93 в этом отношении работает как bash.
К сожалению, я думаю, что код был написан плохо, на мой взгляд, и, вероятно, плохое мнение, поскольку основной причиной проблемы является встроенный тест ksh88, допускающий небрежный код.