Earlier quoted context omitted.
Because SmartThings was born out of a software consultancy that knew how to do backend cloud services, but not embedded. The v1 hub was just a pic microcontoller that sent raw radio messages up to the cloud for all parsing and processing.
(1) If you are letting people code their own event handlers you wouldn't trust them to run them on a tiny machine like that. (2) A system like that probably wants to be able to respond to events both inside and outside the house. For instance, turn on your lights remotely with a phone. A cloud component is the reliable way to do that. (3) At the time I couldn't find decent Zigbee or ZWave hubs other than the SmartThi…
Actually, you can do exactly that now: https://developer-preview.smartthings.com/docs/devices/hub-c... Though that's only for device integrations, so not an exact solution to removing the cloud from the loop on your stuff.
ST is slowly getting away from being totally cloud-centric.