Да, b не является переменной среды.
Но: Да, b существует в подоболочке, созданной с помощью подстановки команд:
$ b=11; c="$(echo $b)"; echo "$c" ### b exists in subshell.
11
$ b=11; c="$(b=33; echo $b)"; echo "$c" ### $b is not replaced before
33 ### the subshell is executed.
То, что не получает переменные, является «полным дочерним процессом» :
$ b=11; bash -c 'echo "<$b>"' ### b does not exist.
<>
$ b=11 bash -c 'echo "<$b>"' ### environment b.
<11>
Кроме что процесс, конечно, может получать переменные в среде.
Последняя строка в Подоболочка Wooledge :
В подоболочке видна обычная переменная оболочки a; но поскольку он не экспортируется, полный дочерний процесс его не видит.