Call-by-name is a parameter passing mechanism where the argument expression is not evaluated until its value is actually used within the function. This approach can lead to more efficient execution in scenarios where the argument may not be needed, but can also increase overhead due to repeated evaluations if the argument is used multiple times.