They probably use HTML5 for the interface. For the streaming part, it's just because HTML5-based streaming stuff isn't quite there yet. DRM is the sticking point. Netflix has been actively engaged with the working group that's trying to figure out how to do DRM directly in the browser, but nobody has agreed on anything yet. As such, they require the use of a plugin of some kind.
There aren't a lot of options that are cross-browser. There's Flash, there's Silverlight, there's Java... Of the three, Silverlight was the only real option when Netflix first implemented their current platform. Flash's streaming and dynamic bitrate changing support was pretty poor at the time, and I'm not sure if they've even caught up to Silverlight yet in that regard.
Before Silverlight, I believe they embedded Windows Media Player.
The only other solution, really, is for Netflix to do their own plugin. The problem is that the browser vendors can't even agree on a plugin format at this point. Most browsers support NPAPI, the plugin format used since Netscape 2.0. Chrome is migrating to an enhancement of that called PPAPI, but ironically despite the fact that NPAPI is intended to simplify cross-platform compatibility, Mozilla has refused to adopt it. And IE is still doing their own thing at this point.--
Developer: Tomato/MLPPP, Linux/MLPPP, etc »fixppp.org