What is the difference between "use case" and "function"?
If by "function" you mean functionality then a single use case may require more than one function to achieve and a single function may serve multiple use cases.

Here's a concrete example:

Use case:


Allow user to withdraw money


Functions:


Check user balance
Prompt user to enter amount and check against balance
Check amount against money in machine
Output money


Depending on how you go about documenting your design you can argue that the 4 functions above can be written as a single function. Though doing this misses the important realization that Check user balance is a function that can be reused in another use case (Allow user to see his balance), even if we reduce them to one function the use case and function would be different ways to say the same thing:

Use case:


Allow user to withdraw money


Function:


Withdraw money


So, at its core level a functionality is an implementation of processes for a use case.

Why do we need two different names? Sometimes it makes it clearer to talk about a requirement and the solution to it. Similar to how in programming we have classes and objects.