Я думаю, что разница между двумя сводится к доступу.Системные переменные среды доступны любому процессу, а системные свойства Java доступны только процессу, к которому они добавляются.
Также, как сказал Богемский, переменные env устанавливаются в ОС (однако их «можно» устанавливать с помощьюJava) и системные свойства передаются в качестве параметров командной строки или задаются с помощью setProperty()
.