I find functional languages better because they tend to demand very little ceremony for the functionality they provide. For example....let's take every number in a list of integers add one to the number, and then sum them.
In Clojure:
(reduce + (map inc mylist))
In C# (functional style):
result = mylist.Select(i => i + 1).Sum();
In C# (imperative style):
int sum = 0;
foreach (int i in mylist)
{
sum += (i + 1);
}
Let's look at the imperative style...we have to create a accumulator (sum), a locally scoped variable (i), and we also have to be explicit in how we enumerate our loop. What takes a single line of code, and is extremely readable in a functional language has ballooned into 5 lines of C# and it's not nearly as readable.
So after studying both imperative and functional languages for several years, I've simply come to the conclusion that I would rather use less work to accomplish more. Since switching to Clojure for all my hobby projects I've found that I can suddenly accomplish much more with less code.
So back to your question, I never find myself asking "why would I use a functional language?", but instead, "why wouldn't I use a functional language?". Sometimes it requires thinking about the problem in a different way, but I find that my functional code is more concise, elegant, and readable than the code I'm forced to write in C#.
For context, I code in C# 8+ hours a day at work, and code around 1-2 hours in Clojure every night.