Этот вопрос не имеет смысла: выбирает ли конкретная реализация реализацию потоков как собственных или зеленых потоков, не имеет ничего общего с языком, это внутренняя деталь реализации.
Существуют реализации Java, которые используют собственные потоки, и реализации Java, которые используют зеленые потоки.
Существуют реализации Ruby, которые используют собственные потоки, и реализации Ruby, которые используют зеленые потоки.
Существуют реализации Python, которые используют собственные потоки, и реализации Python, которые используют зеленые потоки.
Есть даже реализации POSIX Thread, которые используют зеленые потоки, например старая библиотека LinuxThreads или библиотека GNU pth.
И то, что реализация использует собственные потоки, не означает, что эти потоки могут фактически работать параллельно; многие реализации используют глобальную блокировку интерпретатора, чтобы гарантировать, что одновременно может работать только один поток. С другой стороны, использование зеленых потоков не означает, что они не могут работать параллельно: например, виртуальная машина BEAM Erlang может планировать свои зеленые потоки (точнее, зеленые процессы) на нескольких ядрах ЦП, то же самое планируется для Rubinius. Ruby VM.