This is expected behavior. Singular vectors are unique only up to multiplication by a scalar of magnitude 1:
The above code demonstrates that u2 and v2 can be formed by multiplying u and v respectively by the same scalar, and that scalar has magnitude 1. Therefore, both [u,s,v] and [u2,s2,v2] are correct answers, although s and s2 differ in the last few decimal places. This is due to the iterative method used in SVDS.
The SVDS function calls the EIGS function. The EIGS function uses an iterative approach to finding the singular values and singular vectors. The initial guess is randomly generated, which is why different singular vectors are computed each time and why slightly different singular values are calculated each time. To guarantee the same answer each time, specify an initial vector as part of the options structure, which is the fourth argument to SVDS. The documentation for EIGS also documents the options structure.
For more information on the EIGS function, please type "help eigs" or "doc eigs" (without quotes) at the MATLAB command prompt.