Какие подводные в переходе с C# на Java?
Стоит ли учить и джаву и шарп?
Учить новые языки - это вообще хорошая идея. Это делает мозг пластичнее, обогащает мышление и расширяет кругозор. 

Что насчет вакансий?
Это вы и сами можете посмотреть на любом работном сайте.

Знаю что языки очень похожи и все такое, вопрос больше про стандартные библиотеки и фреймворки. 
Да, языки похожи, а потому на джунском уровне перейти с одного на другой достаточно просто. На мидловом уровне напарываешься на то, что экосистемы огромны, учить надо очень много всего даже в одной, на двух стульях становится сложно усидеть. На сеньорском уровне надо разбираться уже и в нюансах языка и виртуальной машины, тут-то становится заметно, что JVM и CLR очень разные.

Так что на базовом уровне стоит изучить и то, и другое, но для оттачивания мастерства придётся выбрать что-то одно.
Первый подводный камень зачем?
Оба языка используются в энтерпрайзе, вы при переходе серьёзно потеряете в деньгах на какое то время. Медианный же рэйт различается процентов на 10%.

Дальше так как ява более стар, то имеет кучу легаси и неохотно добавляют новые плюшки. 

Dot net же наоборот очень агрессивно развивается. 

Насчет совместимости. У явы жуткий бардак как с версиями, так и типами jre. И оракл этому способствует.  У ms все  проще
net 2 *1
net 4 *1
net core 2.1 *2
net core 3 *2
net 5 *3
net 6 
 *1 - старый  легаси
*2 - легаси уже из новой платформы
*3 - еще с год будет актуален

С вакансиями и там и  там все нормально. Но с нуля встрять трудно