Joshua C. answered 04/07/19
Software Engineer at a Ruby shop
Usually iterative. Recursive in practice (with larger inputs) results in stack overflows. The recursion depth exhausts resources quickly and costs a lot of overhead. Anything you can do recursively, you can also do iteratively. It often is more difficult to find the iterative solution (see Dynamic Programming).
See this Fibonacci Sequence program written using memoization (iterative). It can run much, much, much faster than recursive.