Dlaczego skrypt działa z / bin / bash, ale nie z / bin / sh?

Próbuję zrozumieć, dlaczego skrypt będzie działał#!/bin/bash ale nie#!/bin/sh. Używam Cygwin i obush.exe ibash.exe wydają się być identyczne (ten sam rozmiar pliku).

$ cat 1.sh
#!/bin/sh
while read line; do
  echo ${line:0:9}
done < <(help | head -5)

$ ./1.sh
./1.sh: line 4: syntax error near unexpected token `<'
./1.sh: line 4: `done < <(help | head -5)'

$ cat 2.sh
#!/bin/bash
while read line; do
  echo ${line:0:9}
done < <(help | head -5)

$ ./2.sh
GNU bash,
These she
Type `hel
Use `info
Use `man

questionAnswers(2)

yourAnswerToTheQuestion