Байт-код требует запуска JVM и, следовательно, может работать только в JVM (виртуальная среда Java).

С другой стороны, машинный код запускается на ЦП устройства, а не на JVM.