Depende se você deseja adicionar um conjunto de citações em torno da palavra da expansão do histórico ou não.
Assumindo foo="abc def" , compare
$ echo $foo
$ printf "<%s>\n" !$
vs.
$ echo $foo
$ printf "<%s>\n" "!$"
O primeiro produz printf "<%s>\n" $foo , invocando a divisão de palavras e printf obtém dois argumentos após a cadeia de formatações. O segundo produz printf "<%s>\n" "$foo" , onde as aspas impedem a divisão de palavras, como de costume.
Claro, se você fizesse isso:
$ echo "$foo"
Em seguida, um !$ no seguinte comando já seria expandido para "$foo" , com as cotações já em vigor. Agora, usar "!$" produziria ""!$"" , onde as aspas efetivamente se cancelam.