Não é /usr/bin/[ em nenhum dos shells. No Bash, você está usando o comando test / [ incorporado e similarmente em zsh .
A diferença é que zsh também tem uma expansão = : =foo se expande para o caminho para o executável foo . Isso significa que == é tratado como tentativa de localizar um comando chamado = em seu PATH . Como esse comando não existe, você recebe o erro
zsh: = not found
que você viu (e, de fato, a mesma coisa aconteceria mesmo se você realmente estivesse usando /usr/bin/[ ).
Você pode usar == aqui, se você realmente quiser. Isso funciona como você esperava no zsh:
[ "a" "==" "a" ] && echo yes
porque a cotação impede a execução de =word em execução. Você também pode desativar a opção equals com setopt noequals .
No entanto, você estaria melhor: