Você sofre de buffer de tubo. Normalmente, a saída para o terminal não interativo é armazenada em buffer para blocos de 4Kb até que seja entregue via pipe, portanto, é necessário desativá-lo.
Você pode alterar sua linha de comando assim:
$ stdbuf -oL ping 10.1.10.28 | perl -ne '$|=1; /time=(\d+\.\d+)/ && print "$1\n"' > file
stdbuf
é parte do coreutils.
$|=1;
é o caminho para desativar o buffer de saída no perl .
P.D. Eu removi o "10" extra no comando ping.