Usando o 'princípio do menor privilégio' , você só deve executar um programa com privilégios de root se precisar deles, e depois solte-os novamente assim que você não precisar mais deles.
Então, sim, há uma diferença: se houver uma exploração legal, um invasor poderá executar o código com os mesmos privilégios do programa.
Além disso, o sudo reconfigura o seu ambiente, para que ele cause efeitos colaterais, tente
$ echo 'echo $PATH' | sh
/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/jens/.local/bin:/home/jens/bin:/home/jens/.local/bin
$ echo 'echo $PATH' | sudo sh
[sudo] password for jens:
/sbin:/bin:/usr/sbin:/usr/bin
Assim, o comando 'legal' que você executa via sudo pode acabar sendo um binário diferente.
$ which ash
~/.local/bin/ash
$ sudo which ash
[sudo] password for jens:
which: no ash in (/sbin:/bin:/usr/sbin:/usr/bin)