Se você tiver muitos arquivos para criar, vale a pena "tocar" mais de um arquivo por vez, para que você não precise bifurcar um novo processo para cada um deles (o que leva algum tempo se for realizado vários mil vezes).
Opção 1: substituição de padrão + xargs
Essa opção fornecerá vários caminhos para o touchcomando de uma só vez, geralmente alguns milhares ou o que o sistema puder caber em uma única linha de comando.
find "$folder" -mindepth 1 -maxdepth 1 -name '*.png' -print0 |
sed -ze 's/\.png$/.txt/' |
xargs -r0 -- touch --
Opção 2: expansão de parâmetro + redirecionamento de saída de comando
Essa opção não é executada touch, mas usa os recursos de shell Bash / Bourne / POSIX, que não exigem subprocessos.
for f in "$folder"/*.png; do
: >> "${f%.png}.txt"
done
for filePng in "$folder"/*etouch "$filePng".txt- observe que apenas as cita quando precedido por a$.