Here is a toy example of process substitution that works fine in Bash:
$ wc -l <(pwd) 1 /proc/self/fd/11
So why does the same command gi
/bin/sh: 1: Syntax error: "(" unexpected
You have a bashism. It is not valid according to POSIX, which is what /bin/sh implements.
/bin/sh