команды выполняются в другой подоболочке, поэтому ожидание не ожидает правильных процессов.Чтобы увидеть это, попробуйте
./xx.sh >xx &
./yy.sh >yy &
./zz.sh >zz &
wait #this should wait for all of the processes
. Если вы хотите порождать цикл с помощью цикла, создайте строку команды для запуска и затем запустите ее в основном скрипте (не в цикле for).