I had the same issue with Miracast. Having mostly fixed the issue, I would not recommend turning it on unless you already planned to root your phone. Like iambruv said, you have to root your phone, then flip a flag in one of the config files (I believe it's the same one that previous moto's had disabled).
Once this is done, Miracast will be enabled, however you can only cast non-protected content... so basically YouTube. Hulu/Netflix will cast, but only the audio. The reason has something to do with hdcp. I have not found a way to disable hdcp for the Moto G, only some vague mentions of having to recompile the kernel with the hdcp flag turned off, however without detailed instructions, I am not that adventurous.
Also, the Miracast is very hit or miss. My Sony Blueray player sometimes accepts it and when it does it is very laggy. Mostly I use a Microsoft HD-10 to cast to which works most of the time. Sometimes it will lag, but not nearly as bad as the other one, I just pause the video I'm watching and that normally fixes it.
For Netflix and Hulu, I've resorted to popping my sim into my Lumia 735 and that works really well for casting.