In case you need/want symbolic results, you have to do a bit more work to get results in a reasonable amount of time.
I'll use the same parameters used in Henrik's answer:
With[{b = 1/10}, Ω = RegionDifference[Disk[{0, 0}, 1], Disk[{1, 0}, b]]]
The trick is to recognize that computing the inner product $\langle f,g\rangle$ when both functions $f,g$ are polynomials entails a lot of repetitive work, due to the evaluation of expressions of the form $\langle z^m,z^n\rangle$. It thus makes sense to evaluate and memoize these subexpressions so that they get used in the inner product computation:
iProdPow[m_, n_] := iProdPow[m, n] =
Simplify[Integrate[ComplexExpand[(x + I y)^m Conjugate[(x + I y)^n]
(1 - (x + I y) Conjugate[x + I y]),
TargetFunctions -> {Re, Im}],
{x, y} ∈ Ω]]
iProd[f_, g_, z_] /; PolynomialQ[f, z] && PolynomialQ[g, z] :=
With[{fe = CoefficientList[f, z], ge = CoefficientList[g, z]},
Simplify[Sum[fe[[j + 1]] ge[[k + 1]] iProdPow[j, k],
{j, 0, Length[fe] - 1}, {k, 0, Length[ge] - 1}]]]
I've found Orthogonalize[] to be a bit slow for this application, so I decided to steal borrow and modify acl's Gram-Schmidt code instead:
With[{n = 3},
res = Block[{u, v},
v = z^Range[0, n]; u = ConstantArray[0, n + 1]; u[[1]] = v[[1]];
Do[u[[i]] =
Collect[v[[i]] -
Sum[u[[j]] iProd[v[[i]], u[[j]], z]/
iProd[u[[j]], u[[j]], z], {j, 1, i - 1}],
z, Simplify],
{i, 2, n + 1}];
u/Sqrt[iProd[#, #, z] & /@ u]]];
The resulting expressions are quite complicated:
LeafCount /@ res
{33, 158, 1644, 28985}
but evaluating N[] and comparing them with Henrik's results (and squinting a little bit) shows that the results from this method are consistent with his.