El error ocurre porque el binario al que está intentando llamar desde la línea de comandos es solo una parte de la variable PATH del usuario actual, pero no una parte de la PATH del usuario root.
Puede verificar esto localizando la ruta del binario al que está intentando acceder. En mi caso, estaba tratando de llamar "bettercap-ng". Entonces corrí
$ which bettercap-ng
output: /home/user/work/bin/bettercap
Verifiqué si esta ubicación es parte de la RUTA de mi usuario raíz.
$ sudo env | grep ^PATH
salida: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
Entonces sudo no puede encontrar el binario que estoy tratando de llamar desde la línea de comandos. Por lo tanto, devuelve el comando de error no encontrado.
Puede indicarle a sudo que use la RUTA del usuario actual cuando llame a un binario como se muestra a continuación.
$ sudo -E env "PATH=$PATH" [command] [arguments]
De hecho, uno puede hacer un alias:
$ alias mysudo='sudo -E env "PATH=$PATH"'
También es posible nombrar el alias en sí mismo sudo, reemplazando el sudo original.
Consulte este video para obtener una solución paso a paso.