Node.js has far bigger repository of reusable components. NPM is the biggest repository of libraries, frameworks and various tools than any other repository of its sort used by another technology. .NET Core uses NuGet, but only a relatively small subset of NuGet packages is compatible with .NET Core. The rest are only compatible with .NET Framework, Windows-specific platform.
.NET Core is very bare-bone. Node.js is capable of doing anything a server-side app can do, either natively or with the aid of NPM packages. .NET Core, on the other hand, contains only the most basic functionality. All it can do is run a console app or, with ASP.NET Core, host a web app. An example of a basic thing that .NET Core cannot do is play sound. In fact, the best way to do so from .NET Core is to make a call to Node.js code from it!
.NET Core keeps rapidly changing. Node.js is already a well-established technology. What works and what doesn’t has already been determined, so the core components of it are quite likely to stay the same for a while. .NET Core, on the other hand, is new, therefore it keeps undergoing massive changes. The platform itself became completely backward-incompatible with version 1 when version 2 was released and even now, various core libraries from NuGet can still brake your code when you download the latest version. I’ve experienced this many times in the last year. Another disadvantage of this is that the documentation for the core libraries often doesn’t keep up with the changes.
Node.js has a massive ecosystem in the wild, while .NET Core doesn’t. There are many, many apps out there that run Node.js. This means that it would not be practical to phase the technology out any time soon.
The key purpose of .NET Core is to make it easy for .NET developers to write platform-independent apps. OK, this point is probably controversial. However, I just don’t see how any developer who have never worked with .NET before would want to deliberately pick .NET Core as the choice of platform. The only ones who do so are the ones who have spent a large proportion of their professional lives writing .NET Framework apps, as the languages used by .NET Core are the same. This is because of all of the significant limitations of .NET Core compared to Node.js that I have outlined above.