Não analise programaticamente a saída de ls.
A saída de lsé projetada para consumo humano, não programático. Existem várias maneiras pelas quais a análise direta pode ser interrompida, mais ou menos sutilmente. Apenas como exemplo, se eu executar o comando que você deu, eu recebo uma saída diferente:
$ mkdir -p newdir/folder0{1,2,3}
$ cd newdir
$ ls -1ad */
folder01//
folder02//
folder03//
$
Vê aquelas barras duplas? Isso porque eu tenho um alias lspara ls --color=auto -F.
É melhor usar uma ferramenta projetada ou que possa pelo menos ser bem colocada em serviço para o trabalho. Sugiro recorrer a find.
$ mkdir -p newdir/folder0{1,2,3}
$ cd newdir
$ find . -mindepth 1 -maxdepth 1 -type d -printf './process_folder.sh sample/"%P"/\n'
./process_folder.sh sample/"folder03"/
./process_folder.sh sample/"folder01"/
./process_folder.sh sample/"folder02"/
$
-mindepth 1 -maxdepth 1limita a pesquisa apenas aos diretórios iniciais fornecidos (somente .neste caso) e exclui o próprio diretório inicial. -type dlimita as correspondências apenas aos diretórios. -printfé uma ação que a find pode executar, que imprime metadados sobre a entrada do diretório encontrada em um determinado formato; %Pno formato string é substituído pelo nome da entrada encontrada menos o diretório inicial. Veja man 1 findpara mais detalhes.
Se você deseja criar um script para execução posterior, redirecione a saída de findpara um arquivo:
$ find . -mindepth 1 -maxdepth 1 -type d -printf './process_folder.sh sample/"%P"/\n' > process_folders.sh
Se você deseja um único comando que executa os comandos imediatamente, canalize a saída findpara um shell:
$ find . -mindepth 1 -maxdepth 1 -type d -printf './process_folder.sh sample/"%P"/\n' | bash
É muito menos provável que isso ocorra e fornece o que você deseja, sem recorrer à reescrita sofisticada da saída de um comando. Como está, suspeito que a única coisa que pode resolver isso é se os nomes de diretório tiverem aspas duplas.