find faz um passeio cego de todo o sistema de arquivos procurando por correspondências. Demora tanto tempo porque ele está olhando para todos os arquivos em todos os diretórios e não parando até cobrir todo o sistema de arquivos.
locate também cobre todo o sistema de arquivos, mas acelera as coisas tendo um banco de dados pré-construído (atualizado com o comando updatedb ) que ele usa para encontrar arquivos correspondentes.
whereis e which também pesquisam diretórios procurando por arquivos, mas eles pesquisam apenas um subconjunto muito específico de locais no sistema de arquivos (geralmente especificado por variáveis de ambiente como $PATH e $MANPATH conforme apropriado). Eles também param a primeira ocorrência, levando a tempos de execução mais rápidos.