Потому что язык рассчитан на IDE. Например, вы используете некий класс. Нужно импортировать пакет с этим классом. В IDE это просто одна комбинация кнопок, а в текстовом редакторе? Или, например, нужно посмотреть список методов какого-то класса и выбрать нужный.Но это только начало. В крупных Java проектах нужно постоянно генерировать всякую хрень типа файлов для ant или maven, web.xml для сервера, биндинг-файлы для тегов или функциональный выражений в JSP. Конечно, можно писать скрипты и расширения для редактора, да только все это меняется, и на доработку инструментов у вас уйдет больше времени, чем на сам проект.
Потом. Дебаггинг. Как вы в VIM устанавливаете брейкпоинты, смотрите значения переменных (которые в основном являются сложными объектами), динамически добавляете код в JVM?
Деплоймент. Ваш текстовый редактор умеет выборочно делать редеплоймент файлов при сохранении?