You can read details about Miracast here. Briefly, it's a standard for, well, wireless HDMI. iOS does not support it. Android does not support it. Blackberry does, so yay?
At a high level, mirroring is what it sounds like. If you were to mirror your device to a second screen, you'd be seeing things on that other screen.
Casting can mean a couple of things. I'll use Google Chrome browser and a Chromecast device as an example.
If you launch Netflix on your phone (iOS or Android) you can cast to your Chromecast (or Roku). The content from Netflix is now playing on your TV. But here's the thing. Some people think that your phone is actually doing the streaming, and transferring the output to the TV via the Chromecast (or Roku). But it's not. What's actually happening is that when you started "casting" the Chromecast (or Roku) opened its own Netflix app, took the information about what was playing, launched that content, then moved to whatever timestamp your phone was on. All that really quickly. But the key piece is that your phone is no longer doing the streaming, the Chromecast (or Roku) is.
The connection between the phone and streamer can be used to FF, RW, Pause, Play/Resume the stream, but it's still the streamer, not the phone, doing the actual streaming. Chromecast has the apps already loaded, or if not, can load them quickly without intervention. However, if you remove Netflix from your Roku, then try to "cast" Netflix from your Roku, you'll see Roku prompt you to download Netflix.
Then there's this other thing that's commonly called casting. Remember I said your Chrome browser? Well, it's got a "cast" button or link. Click that and your browser tab contents appear on your Chromecast (or Roku, you can select where if you have more than one on your network). In that instance, your browser is actually doing the heavy lifting. It's really mirroring the tab to the device.
You didn't ask this, but don't Miracast. Well, actually go ahead, but be prepared to be disappointed. It may work great, but it may not. Roku does support it, but the other device, Windows or Android-based phone (or Blackberry?) may or may not support it. As I said, Android doesn't support it, but some phone manufacturers put in the stuff to work apart from Android. So, kludged together. If it fails, it fails.
DBDukes Roku Community Streaming Expert Note: I am not a Roku employee.
If this post solves your problem please help others find this answer and click "Accept as Solution."