POSIX sh não permite que funções sejam exportadas, mas o bash sim. ~/.profile é originado por um shell POSIX, não por bash. Também é inútil exportar funções, pois somente o bash pode lê-las e usá-las. Basta colocar as funções em ~/.bashrc e não exportá-las.