Оба ведут себя одинаково для меня, в том смысле, что они показывают только stderr.
Для тестирования я создал команду, которая выводит в stdout и stderr и работает одинаково в Zsh и bash:
(echo stdout; echo 1>&2 stderr)
печатает
stdout
stderr
Теперь я делаю ваше перенаправление:
(echo stdout; echo 1>&2 stderr) 2>&1 >/dev/null
Здесь я вижу на bash и zsh
stderr
но, конечно, записывается в стандартный вывод, потому что 2>&1
сначала перенаправляет stderr команды на тот, который в данный момент является стандартным выводом, а затем отбрасывает стандартный вывод команды.