Use meshgrid or ndgrid to generate a full grid of coordinates. Then you mark all points outside your triangle with inpolygon. The surf function will ignore NaN values, so that is good choice.
You can make the grid as fine as you need it to be.
[X,Y]=ndgrid(linspace(0,1,50));
Z=X+Y;
%define the triangle here
xv=[0 1 1];
yv=[0 0 1];
L=inpolygon(X,Y,xv,yv);
X(~L)=NaN;
Y(~L)=NaN;
Z(~L)=NaN;
surf(X,Y,Z)