type -a doesn't list all executable files

Doing type -a python with both bash and fish gives two different results if multiple executables are available in different paths:

$ bash -c 'type -a python'
python is /opt/local/bin/python
python is /usr/bin/python
$ type -a python
python is /opt/local/bin/python