Solve considers the expressions declared as variables to be atomic objects. Effectively they are first replaced with new symbols and then solved for:
In[1]:= f[x, y] ==
Sqrt[1 - x^2 - y^2] -
8/Pi*Integrate[
f[x, y], {x, 0, 1/2}, {y, -Sqrt[1/4 - x^2] + 1/2,
Sqrt[1/4 - x^2] + 1/2}] /. f[x, y]->z // InputForm
Out[1]//InputForm= z == Sqrt[1 - x^2 - y^2] - z
In[2]:= Solve[%, z]//InputForm
Out[2]//InputForm= {{z -> Sqrt[1 - x^2 - y^2]/2}}
This is similar to
In[3]:= Solve[x==Sin[x], Sin[x]]
Out[3]= {{Sin[x] -> x}}
If you specify {x, y} as the variables then f[x, y] is treated as a function of the variables and Solve knows that it cannot solve the equation.
In[4]:= Solve[f[x, y] ==
Sqrt[1 - x^2 - y^2] -
8/Pi*Integrate[
f[x, y], {x, 0, 1/2}, {y, -Sqrt[1/4 - x^2] + 1/2,
Sqrt[1/4 - x^2] + 1/2}], {x, y}]//Head
Solve::nsmet: This system cannot be solved with the methods available to Solve.
Try Reduce or FindInstance instead.
Out[4]= Solve