O erro ocorre porque o binário que você está tentando chamar da linha de comando é apenas parte da variável PATH do usuário atual, mas não faz parte do PATH do usuário raiz.
Você pode verificar isso localizando o caminho do binário que você está tentando acessar. No meu caso, eu estava tentando chamar "bettercap-ng". Então eu corri,
$ which bettercap-ng
output: /home/user/work/bin/bettercap
Eu verifiquei se esse local faz parte do PATH do meu usuário root.
$ sudo env | grep ^PATH
saída: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
Portanto, o sudo não consegue encontrar o binário que estou tentando chamar na linha de comando. Portanto, retorna o comando de erro não encontrado.
Você pode direcionar o sudo para usar o PATH do usuário atual ao chamar um binário como abaixo.
$ sudo -E env "PATH=$PATH" [command] [arguments]
De fato, pode-se criar um apelido:
$ alias mysudo='sudo -E env "PATH=$PATH"'
Também é possível nomear o próprio apelido sudo, substituindo o sudo original.
Consulte este vídeo para obter uma solução passo a passo