The first parameter to integral() must be a function handle. You are passing in V0 as the first parameter, but V0 appears to be a vector of values.
The second parameter to integral() must be a scalar numeric value, which is indeed true for the t0 you pass in.
The third parameter to integral() must be a scalar numeric value, which is indeed true for the ts you pass in.
You construct a function handle, z, but you do not do anything with it.
When you have a numeric function of several variables, it is not possible to integrate it with respect to fewer variables than it is defined over.
If you were using symbolic functions, then it would be possible to integrate it with respect to fewer variables.
When you have two independent variables, and you want to do numeric integration over a grid of values defined by the independent variables, then you should evaluate the function over the grid of values, and then use trapz() one or more times.
alfa = 10e-9; omega=1e-21; t0=0; ts=2*pi/omega; t=(t0:(ts-t0)/(length(z)-1):ts);
Z = @(z,t) (z + alfa*sin(omega*t));
surf(z, t, G, 'edgecolor', 'none')
volume = trapz(z, trapz(t, G, 2), 1)
You should double-check the order of trapz() and dimensions. If you were to make your t and z different lengths, then it would be easier to do, as then you would have the cross-checking of array sizes as a guide.