Sim, claro.
Vou contar um segredo. Ele funciona até melhor no Linux. Tem completa eficácia.
Desktop para Linux você vai ter dificuldade com qualquer linguagem. Como é um mercado extremamente pequeno há pouco investimento nisso. Quase tudo de mais importante é feito em C ou C++. Tem várias opções para C#, mas nenuuma é muito boa. Em Java o problema é o mesmo, além dele ser ruim no Windows também. Mas nada que não dê para usar, só não é nota 10. O mais comum é usar o GTK no Linux no lugar do Windows Forms. Andaram fazendo um port do WF para Linux, mas não funciona direito. Eu sei que o MAUI suporta Linux via comunidade, mas não sei como está a evolução disto. Tem outras opções.
C# não tem a intenção de ser compatátil com diversas plataformas, ela é compatível. Poucas linguagens rodam em tantas plataformas.
Limitação não tem muita. Tem dificuldades. Por exemplo, você não vai se dar muito bem fazendo um sistema operacional com ela. Mas dá e já fizeram alguns.
O .NET é um ambiente que está ficando cada vez mais leve, podendo gerar executáveis nativos e limpos usando técnica de tree shaking, mas aianda é uma linguagem que tem um garbage collector e um runtime um pouco grande, além de uma bibliooteca nível enterprise, por isso é poderosa e completa, mas cobra um preço por isso. Quase todas as alinguagens mais conhecidas sofrem de problema semelhante. Tirando as linguagens de nível um pouco mais baixo é a linguagem mais eficiente do mercado atualmente, pelo menos em boa parte dos cenários, não em tudo, claro.
Você pode programar em qualquer IDE. O Visual Studio que é o melhor, só roda no Windows, e em geral eu recomendo usá-lo porque tem o melhor dos mundos. Todas as vantagens do Windows e do Linux ao mesmo tempo usando o WSL. Mas se não quiser isso e quer Linux sem Windows, tem o Rider da JetBrains, tem até edição gratuita para alguns casos de uso. Ou pode ir no que a maioria adota que é o Visual Studio Code com o DevKit para C#. É bom, mas não tão bom assim. Tem outras opções.
Faz sentido para você?
Espero ter ajudado.
Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente. Para saber quando, me segue nas suas plataformas preferidas. Quase não as uso, não terá infindas notificações (links aqui).