In linea di massima, Java e C# si equivalgono:
- Sono multipiattaforma (C# in versione core)
- Possono fare da backend in ambiente web
- Vengono usati anche per altri ambiti (es: applicazioni desktop e/o videogames)
Pertanto se si parla in generale, non c'è un vincitore, tutto dipende da quello che devi fare.
Ad ogni modo, stiamo parlando di linguaggi di programmazione, non di ambiti di applicazione.
Mi spiego meglio.
Con C# scrivi il codice, però se vuoi fare delle applicazioni desktop, dovrai imparare anche WPF e tutto quello che ci sta attorno (es: XAML e paradigma MVVM). Se vorrai fare delle applicazioni web, dovrai affidarti quantomento ad ASP.NET core (MVC) o a tecnologie nascenti come Blazor.
Lo stesso vale per Java: se vuoi fare delle applicazioni desktop, dovrai imparare Swing o similari. Se vuoi fare delle pagine web, devi affidarti a servlet o JSP, oppure a motori già pronti come Spring o similari.
Se non hai esigenze particolari, secondo me ti conviene rimanere in ambiente Microsoft e quindi passare a .NET core con C#. Il motivo è quello di riutilizzare le conoscenze che hai già. Per esempio, per hostare del web service, hai bisogno di un server web. Se rimani in ambito Microsoft, puoi continuare a gestire IIS, quindi riutilizzi competenze già in tuo possesso.
Inoltre, per quanto sia cambiato, ci sono molte cose simili fra ASP ed ASP.NET core, quindi hai il vantaggio che ti troverai più a tuo agio (probabilmente).