> Can anyone describe why one might use Ansible over Terraform?
Anywhere you're dealing with bare metal you can't really use Terraform. Terraform also doesn't get you much within a host, so to speak. One example of that idea, if you use Packer to bake AMIs, with Ansible as the provisioner, you get the simplicity of Packer with the integrated secrets management and templating of Ansible.
Also, not everything is an immutable infrastructure change. Sometimes you just need to do things repeatably against a set of hosts, and Ansible is good at that.