Всё просто. Директива error_log не поддерживает переменные в путях к файлу.
https://forum.nginx.org/read.php?2,178665,178680#m...There is no variables support in error_log directive (and it's
unlikely to appear), so "...error_log" file is expected.
UPD:
В момент когда нужна запись в error_log это должно быть сделано быстро и с минимальными затратами. Интреполяция переменных это лишнее действие. К тому же, если имя файла известно заранее, то он открывается на запись мастер-процессом в момент (ре-)старта приложения, а если бы его приходилось вычислять на основании значений каких-то переменных, то и открывать пришлось бы уже в воркере и прямо перед записью, а это ни разу не быстро и, к тому же, у воркера обычно меньше прав и неплохие шансы, что он просто не сможет открыть файл.
Если у вас реально есть потребность в большом количестве разных серверов, то никто не мешает вам взять любой из существующих шаблонизаторов (или написать свой велосипед) и сгенерить хоть тысячи однотипных файлов конфигов.