Não sei se você tem acesso a um ambiente Unix ou ao Cygwin no Windows, mas acho que esse pequeno script que eu reciclo de um script antigo que escrevi e modifiquei para o seu exemplo faz o trabalho:
#!/bin/bash
for line in {1..100}
do
digs=${#line}
zeros=$((4 - $digs))
zeros2=$(yes 0 | head -$zeros | paste -s -d '' -)
numm=$zeros2$line
printf "john is going home\nhis door number is %s\n" $numm > text$numm.txt
done