If you have two ranges, say x = 0:0.1:1 and y = 0:0.1:1, you can just do surface(x, y, f). Automatically selecting points in a smart way is in general not completely trivial, and I think there is only a 1D implementation in Julia here.
If you have ideas on how to do the 2D version, it would be a good PR to PlotUtils. Does Mathematica use an adaptive grid for 2D, or do they just take uniformly spaced points on x and y axis?