pg_dumppor padrão, cria os comandos sql necessários para recriar os dados. Para recuperá-lo, basta invocar psql(não pg_restore) o arquivo como entrada. pg_restoredeve ser usado apenas para o formato binário (não padrão e menos usual, não recomendado ) de pg_dump. Leia os documentos .
Atualização: Os pg_dumpformatos binários ( -Fc -Ft) a serem usados pg_restoreestão ok e oferecem alguma flexibilidade extra. Mas eles são menos padrão (não SQL), menos aptos para importar de algumas ferramentas (por exemplo, um front-end php) ou manipular com um editor de texto e um pouco menos portável para outras versões e até outros bancos de dados. Para backups, eu continuaria com o formato simples padrão. Para outros cenários, a opção binary + pg_restore pode ser igualmente ou mais adequada.
O ponto a ser mantido é que, no Postgresql, no cenário típico , o backup normalmente é feito por pg_dump (simples) e a restauração com o cliente de linha de comando padrão ( psql ).