That's also a potentially cheap way to solve a vexing problem when you have a limited resource pool (ie your employees).
So maybe the upper management can innovate and the employees can't?
Not at all. Think of it this way, you're a small company with a limited budget. You have a very difficult problem and your existing engineers haven't been able to figure it out. Hiring another engineer could help but it's no guarantee and you can't keep hiring indefinitely until it's solved. Why not have a contest with a known payout (ie the prize). That way you're not paying for all the work that is a non-winning idea. You get the solution, for a fixed amount and are able to spread the time and effort across a vastly greater resource pool without having to pay for it.