You may use the MeshFunctions
option of Plot3D
with ImplictRegion
.
With region in OP
r = ImplicitRegion[x < 2 && y < 2, {x, y}];
then
Plot3D[x + y, {x, 0, 4}, {y, 0, 4}
, Mesh -> {{1, 2, 3}, {1, 2, 3}}
, MeshFunctions -> {
If[{#1, #2} ∈ r, 0, #1] &
, If[{#1, #2} ∈ r, 0, #2] &
}
]

You can use any region. However, for some you may have to increase the PlotPoints
to get the mesh to connect nicely.
For example,
r2 = ImplicitRegion[(x - 2)^2 + (y - 2)^2 <= 1, {x, y}];
Plot3D[x + y, {x, 0, 4}, {y, 0, 4}
, Mesh -> 5
, MeshFunctions -> {
If[{#1, #2} ∈ r2, 0, #1] &
, If[{#1, #2} ∈ r2, 0, #2] &
}
, PlotPoints -> 100
]

Easy to Manipluate
as well.
Manipulate[
region =
ImplicitRegion[(x - First@c)^2 + (y - Last@c)^2 <= 1, {x, y}];
Plot3D[x + y, {x, 0, 4}, {y, 0, 4}
, Mesh -> 5
, MeshFunctions -> {
If[{#1, #2} ∈ region, 0, #1] &
, If[{#1, #2} ∈ region, 0, #2] &
}
, PlotPoints -> ControlActive[20, 100]
]
, {{c, {2, 2}, "Center"}, {0, 0}, {4, 4}, {.01, .01},
Appearance -> "Labeled"}
, {region, None}
]

Hope this helps.
RegionFunction
like this:Plot3D[x + y, {x, 0, 4}, {y, 0, 4}, Mesh -> {{1, 2, 3}, {1, 2, 3}}, RegionFunction -> Function[{x, y, z}, ! (x < 2 && y < 2)]]
or do you want to keep the surface too? $\endgroup$Show[ Plot3D[x + y, {x, 0, 4}, {y, 0, 4}, PlotRange -> {All, All, {-2, 8}}, Mesh -> {{1, 2, 3}, {1, 2, 3}}, RegionFunction -> Function[{x, y, z}, ! (x < 2 && y < 2)]], Plot3D[x + y, {x, 0, 4}, {y, 0, 4}, Mesh -> None, RegionFunction -> Function[{x, y, z}, (x < 2 && y < 2)]] ]
$\endgroup$Show[Plot3D[x + y, {x, 0, 4}, {y, 0, 4}, PlotStyle -> None, Mesh -> {{1, 2, 3}, {1, 2, 3}}, PlotRange -> {All, All, {-2, 8}}, RegionFunction -> Function[{x, y, z}, ! (x < 2 && y < 2)]], Plot3D[x + y, {x, 0, 4}, {y, 0, 4}, Mesh -> None]]
. $\endgroup$