Если о шарпах говорить, то для лямб компилятор создает реальный метод и во время выполнения в него попадают ссылки на элементы аля переменные, которые вы используете в этой лямбе.
Если о js, то есть контексты переменных у каждой функции, поиск идёт вглубь от родителя к чайлду (вот тут конечно порядок точно не помню).
В случае замыкания сохраняется ссылка на родительський контекст и в нём так же происходит поиск переменных.
Если я уже чет не так помню, поправляйте меня.