A partir desta pergunta sobre se printf é um built-in para yash , vem esta resposta que cita o padrão POSIX .
A resposta aponta que a sequência de pesquisa POSIX é encontrar uma implementação externa do comando desejado e, em seguida, se o shell o implementou como interno, execute o interno. (Para built-ins que não são built-ins especiais .)
Por que o POSIX tem esse requisito para que uma implementação externa exista antes de permitir que uma implementação interna seja executada?
Parece... arbitrário, então estou curioso.