This is expected behavior as in this expression dfv[dfv.b.>0, :] makes a copy first, of which you make a view.
While @view dfv[dfv.b.>0, :] does not make a copy, but just makes a view.
dfv = view(dfv[dfv.b.>0, :], :, :) should be dfv = view(view(dfv,dfv.b.>0, :), :, :) to make a view (actually then you can drop outer view call)