From what I understand both run small repeatable tasks in the cloud.
What reasons and in what situations might I want to choose one over the other?
They are good for lightweight work items that do not need any customization of the environment they run in and do not consume many resources.
They are really good for tasks that only need to be run periodically, scheduled, or triggered. They are cheap and easy to setup/run. They usually run in the context of our Website which means we get the same environment that our website runs in, and any resources they use are resources that our website can't use.
They are good for more resources with intensive workloads
If we want to modify the environment where they are running (i.e. something which is installed into the OS). Worker Roles are more expensive and slightly more difficult to set up and run, but they offer significantly more power.