ls -l /usr/local/bin/foo
и посмотрите, куда указывает ваша символическая ссылка на самом деле . Бетча, он сломан.
Если нет, попробуйте запустить /usr/local/bin/foo
. Если это сработает, это был ваш ПУТЬ, который не прав, несмотря на то, что вы сказали в ОП.
Единственное, что может вызвать такое поведение, - это если скрипт читает $0
(его собственное имя выполняется) С символической ссылкой это будет иметь другое значение.