Chromecast is a standard for remote controlling video and audio devices. When you play a Netflix stream on a Chromecast display, you send it a video URL that the Chromecast dongle/box/built-in device plays independently. You can then pause/stop/rewind/fast-forward it from multiple devices in your network, none of which are playing the video themselves. Chromecast is immensely more useful and practical as a result. As a small detail, Chromecast additionally supports display mirroring but that's not why so many people use it.
There are no open alternatives for Chromecast. Some Kodi remote apps create a similar experience to stream video to Kodi. But the key of Chromecast's success is not its technical sophistication, but the fact that it has been adopted by a huge number of media services in their Android/iOS client apps. The reason for this is that it's (1) built using an easily available SDK from Google and (2) Chromecast devices enforce DRM, it's not possible (anymore) to cast to uncertified third party devices.
That's my #1 gripe with it. The protocol is pretty freely available, but at the end there's a pretty strict authentication process requiring device keys stored in a secure enclave (is there a way of getting them out of there?).
One way to go would be shipping a modified version of the library not enforcing authentication, paving the way for unapproved devices (implementing the protocol is seemingly easy) - but it will likely not be adopted very widely.
Getting real Google Cast reception on your own device (I don't want to buy another hardware thing for something that is entirely software and that won't allow my custom software to run) will essentially involve breaking DRM.
Though, figuring out which devices support which codecs has been an adventure ...
Nevertheless, you'd have to ask Google why they effectively killed Miracast - it was supported in Android 4.2 and 5, then mysteriously removed in Android 6.
My old phone supported screen mirroring to my TV, I consider it a regression that my current one doesn't and I'd have to buy a dongle.