last não suporta a leitura de um pipe. Você pode usar /dev/stdin como um nome de arquivo, mas isso é inútil, já que só funciona se você estiver redirecionando de um arquivo em primeiro lugar.
Descompacte o arquivo em um arquivo temporário.
wtmp=$(mktemp)
zcat /var/log/wtmp-20130827.gz >|"$wtmp"
last -f "$wtmp"
rm -f "$wtmp"
Zsh tem uma forma de substituição de processo =(…) , que coloca a saída de um comando em um arquivo temporário.
last -f =(zcat /var/log/wtmp-20130827.gz)