Для приватности и для избежания коллизии имён. При ограниченности лямбд в Питоне их также удобно использовать в качестве коллбэков. Ну и во многих языках они фактически являются замыканиями -- т.е в них можно использовать локальные переменные функции, а с питоновским nonlocal даже менять их.