Как языки, исполняемые на ВМ, пишут в консоль?
stdout это просто дескриптор, который открывает консоль.

Для каждой консольной программы открывается три дескриптора с номерами 0, 1, 2 (stdin, stdout, stderr), куда они могут писать.

/dev/fd/1
Нет, fd это просто файловый дескриптор/1
правильный путь будет /proc/ID_процесса/fd/1
то есть у каждого процесса stdout свой.

Ну и еще. Неважно какой язык. Это про архитектуру операционки, а не язык.
как это работает именно в случае с языками по типу Java или C#Это запрятано в библиотечных функциях и программист может не задумываться о том, как оно работает. Вызываете стандартную функцию вывода и она делает всю работу. Примеры:
https://ru.wikipedia.org/wiki/Printf
https://prog-cpp.ru/cpp-std/
записать данные в него можно используя API POSIXМожет быть и можно. Но на самом-то деле все используют те же самые библиотечные функции.