Faça assim:
while IFS= read -r fecha; do
echo $fecha
done < <(xml2 < podcast | egrep "pubDate" | grep -Po "(?<=\=).*")
O Bash separará as "palavras" para percorrer os caracteres no Separador de campo interno ( $IFS ). Você pode desativar temporariamente esse comportamento configurando IFS para nada durante o comando read . O padrão acima irá sempre repetir linha por linha.
<(command) faz com que a saída de um comando se pareça com um arquivo real, que então redirecionamos para o nosso loop read .
$ while IFS= read -r line; do echo $line; done < <(cat ./test.input)
Fri, 22 Jan 2016 17:56:29 +0100
Sun, 13 Dec 2015 18:33:02 +0100
Wed, 18 Nov 2015 15:27:43 +0100