Модель: echo -e \'a\\tb\\tc\\td\' | ( read a b c; echo $a-$b-$c ) При этом последний \\t (нормально входящий в IFS) превращается в пробел (проверено прогоном сквозь od -h). В man bash говорят, что \"хвост\" _вместе_ с разделителями должен был достаться последней переменной (в примере -- c). bash-2.04-ipl2mdk. --- --- zsh работает так, как должен бы и bash.
Этот пример не показывает ошибки. Попробуйте поставить замещаемые параметры в двойные кавычки: echo -e \'a\\tb\\tc\\td\' | ( read a b c; echo \"$a-$b-$c\" ) | od -t a и Вы увидете, что знак Horizontal Tab остается там (bash-2.05-alt4). Он испарялся при прохождении стадии word splitting.