The evaluated query has its own query context. The only variables available inside are those passed in the bindings.
If you want access to a map variable you must pass it in e.g.
declare
%restxq:path('/test2')
%restxq:GETfunction test:test2(){
let $map := map{
"map":map{ "greeting" : "hello","who": "world"}
}
return test:render('view2.xq', $map)
};