The return works in every language like a "response" to the code outside the function, look this line of your code:
meal_with_tax = tax(meal_cost)
The return gonna replace the "tax(meal_cost)" in it. What you are saying is that the variable "meal_with_tax" will recive the value of the variable "bill" INSIDE the function. If the variable "bill" in your function is 10, then "meal_with_tax" will be 10 aswell. If you put just "return", then your variable "meal_with_tax" will be nothing since your are saying that the response to your function is nothing.