There’s things you can play through a Roku that you can’t through a Chromecast, like all formats of local media that can be transcoded for Plex/PlayOn.
It’s also a pain to play Amazon Prime Video / Instant Video on a Chromecast right now since it uses Silverlight and there’s no app for it. You can get around it using a user-agent switcher extension in Chrome to pretend you’re an Android tablet, get the Flash player, and cast the tab. For now it’s easier to just use the Amazon Instant Video app on a Roku.
That’ll probably change in the next year though. The Chromecast SDK is coming very soon (Google has had internal developers outside the Chromecast team testing it recently), which means companies other than Google and its couple partners will be able to make apps for it.