Strangely, when I copy your code and paste it into a notebook, the integration endpoints get reversed. However, if you feed the symbolic integral directly into Plot3D, it attempts symbolic integration over and over again for every value of a,b. You should pre-calculate the integral as much as possible, and also use NIntegrate:
expr0 = (1/(2*Pi))*
Integrate[
Integrate[E^((-(1/2))*(x - a)^2), {x, y, 0}]/E^((1/2)*(y - b)^2),
{y, Infinity, 0}]
f[a_?NumericQ, b_] = expr0 /. Integrate -> NIntegrate
f[1/2, 1/2] // Timing
Plot3D[f[a, b], {a, 0, 2}, {b, 0, 2}]