So the goal of svds is usually to compute a requested rank that is much smaller than either size of the input matrix. A search space is constructed which has (by default) about 3 times as many vectors in it as the requested rank.
If that search space ends up being larger than the size of the original matrix A (that is, if 3*k >= min(size(A)) ), svds will fall back on just computing svd(full(A)), as this will definitely be faster in that case. But even before that, svds is only advisable to be used if the number of singular values requested is significantly smaller than the size of A - as is shown in your plot.
For the smaller jump seen at target rank 105-110, that's probably a bit of luck based on the specific matrix: As the target rank increases, the search space size increases, and it's possible that a larger search space will need fewer iterations to find all singular values requested. This is a bit of balancing between parameters, it's normal for the timings here to not just steadily increase.