우선 언어 자체를 비교하면, 말씀하신대로 기본적인 사상이 거의 동일합니다. 소소한 차이가 있다면, 우선 C#에 있고 자바에 없는 기능은 확장 메서드, 구조체, ref/out 인자, 런타임에 지워지지 않는 제너릭 정도가 떠오르고, 반대로 자바에 있는데 C#이 지원하지 않는 경우는 메서드 있는 열거형, 옵션 유형, 내부 클래스의 부모 인스턴스 참조 정도가 기억납니다.
언어 외적으로 말하면 자바는 한 때 매우 넓은 저변을 확보했고 아직도 상당한 점유율을 자랑하지만, 웹/서버과 모바일 일부를 제외하고는 사용 영역이 좁아지는 추세입니다.
반면 C#은 처음 나왔을 때의 서버 측에서 자바와 경쟁하겠다는 목표를 달성하진 못했지만 유니티 이후 게임 엔진에서 흔히 사용하고 원래 MS의 "앞 마당"이었던 데스크탑 분야에서 계속 널리 쓰이고 있는 등 범용성이 부각되고 있습니다.
대략 자바는 썬이 망하기 직전부터 내리막이다가 자바8로 다소 반등한 상황 + "부잣집은 망해도 n년은 간다"는 상황인 것 같고, C#의 경우 정신 차린 MS가 분전하면서 인식도 좋아지고 널리 쓰이고 있긴 합니다.
다만 애초에 상대적으로 낮은 점유율로 시작했고, 요즘은 자바/타입스크립트, 파이썬 등 다양한 언어가 경쟁하는 시대인 만큼 대세가 되긴 어렵지 않나 정도의 느낌은 있습니다.