Если о причинах прозвища "духи" для механиков довольно легко догадаться, то почему "рогатые" масса объяснений ходит, но все они сомнительны.

По Лухманову, это разделение существовало еще в 19-м веке и, если верить тогдашней байке, сейчас ему уже 160 лет стукнуло.

— Вот когда «Русское общество» на Черном море образовалось, нас тогда из флота человек двести откомандировали на пароходы, так ходил в Англию… Смешно очень было. Пришли это мы в английский город Кардифф: город хороший, ничего, вот и пошли компанией на берег. Ну, выпили, конечно. Кто-то и говорит: «Давайте, ребята, молоком отпаиваться, а то неловко так-то на пароход идти». Зашли в молочную, а по-ихнему никто говорить не может. Мы молока спрашиваем, а хозяйка или там приказчица, вообще молочница, нам сыры разные предлагает. Как тут быть? Вот один из наших стал на четвереньки и мычит, как корова, а другой его будто доит, а третий для ясности пальцы ему к голове приставляет, будто рога… Поняла молочница: «йес, йес», — и сейчас принесла нам со льду молока в бутылках и стаканы. Все бы и сошло, да кочегары, наши же, как раз мимо молочной проходили и видели, как мы корову изображали… Вернулись мы на судно, а они нас «рогатыми» дразнят, ржут и мычат на нас по-коровьи. Мы их, конечно, «духами» из преисподней обложили, ну, они в драку. Подрались немного и «без берега» получили…

С тех пор и пошло: матросы кочегаров «духами» зовут, а кочегары матросов — «рогатыми».

(с) Лухманов Дмитрий Афанасьевич, глава "Старшим помощником" из сборника "Жизнь моряка"
(написано еще до Великой Отечественной войны).

Упомянутое в тексте "Русское общество", скорее всего, «Русское Общество Пароходства и Торговли» (РОПиТ) - созданное в 1856 году акционерное общество для развития регулярного или срочного пароходного движения на Чёрном море.
andrej-kraft.livejournal.com/117570.html