Quando você usou aspas duplas em "$(cat links)"
, o shell tratou todo o conteúdo do arquivo como uma string, não campos separados (com cada campo é uma linha no arquivo).
Você pode fazer algo assim:
set -f # Turn off globbing
IFS=' # Split on newline only
'
wkhtmltopdf $(cat links) all.pdf