Na manpage de whereis , diz claramente (ênfase minha):
The whereis utility checks the standard binary directories for the specified programs, printing out the paths of any it finds.
The path searched is the string returned by the sysctl(8) utility for the ''user.cs_path'' string
Ao contrário disso, which é a ferramenta comumente usada para verificar onde um binário é para o caminho do usuário.
The which utility takes a list of command names and searches the path for each executable file that would be run had these commands actually been invoked.
Isso explica sua diferença, pois /opt/local/bin não é um caminho "padrão" para todo o sistema - afinal, MacPorts é uma instalação totalmente opcional - e sysctl tem apenas /usr/bin:/bin:/usr/sbin:/sbin em seu user.cs_path por padrão.
Em geral, atenha-se a which ou which -a para encontrar um binário em vez de usar whereis .
Você pode, teoricamente, alterar user.cs_path por meio de
sysctl -w user.cs_path=/opt/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
mas não sei se é uma boa ideia.