I want to use the keys on my keyboard for typing. I can't guarantee that the keys I'm pressing won't be used for something else (DotA 2 uses all letter keys and many F1/number keys), and that's only one example.
However, if I have a dedicated controller connected over USB, I can be 100% certain nothing else is using it (Because it isn't a keyboard), so I know my hotkeys are safe.
I use xpadder to bind joypad keys to my keyboard, and it works great. But I have to be wary that I don't play a game or use an application that would use those keys whilst I stream - it is far more convenient and simple to just have it available through the stream application.
Edit: For anyone interested, there is a joypad binding program called 'Joy2Key', but it lacks a few features that makes xpadder great.