A segunda forma de redirecionamento de E / S ( <(cmd) ) simplesmente não se comporta da mesma maneira que o primeiro formulário ( cmd | other-cmd ).
O primeiro conecta a saída de cmd à entrada de other-cmd , mas o segundo substitui um caminho /dev/fd ou um pipe nomeado caminho para o comando. A saída padrão de cmd está vinculada à outra extremidade desse canal, mas isso só parece equivalente com comandos como cat , que lerá de stdin ou de um caminho de arquivo. sqlite3 não se comporta dessa maneira, portanto, expõe a diferença entre as duas formas de redirecionamento de E / S.
sqlite3 espera instruções SQL opcionais depois do caminho do BD, então ele tenta analisar esse caminho substituído como SQL e falha.
Aliás, isso significa que você não precisa do redirecionamento de E / S. Este comando faz o que você está querendo de forma mais eficiente do que qualquer forma que você tentou:
$ sqlite3 ~/.config/google-chrome/Default/History "select count(*) from urls"
Note que você não precisa do ponto-e-vírgula terminador de instrução ao passar uma única instrução SQL para sqlite3 como um parâmetro de linha de comando.