Problems controlling servos using proximity sensor
I am new to servos as well, but I do have two coding thoughts. The servos I have used in the past have started in the halfway position. That would mean the "pos" variable would start off trying to go from the starting 90 position to the 0 value in 15ms. Not enough time before the next for loop. I could see that causing some weird spinning while the servos try to get to the intended position. So.. 

int pos = 90; // Start servo position.


And secondly, the "distancia" could just always be less than 100. I would try finding a max distance value to compare to vs a hard coded value. 

void loop() {...
long duracion, distancia; // variables
boolean isMoveTrigger = false; // Movement trigger.

/* Calculo de la distancia efectiva */
distancia = (duracion/2) / 29.1;

// Store a maximum value.
if (distancia &gt; maxDistance) {
    maxDistance = distancia;
}

// Wait to get a starting maximum distance value.
if (countDown &gt; 0) {
    countDown--;
} else {
    if (distancia &gt; 0) {
      int distancePercentage = (maxDistance * 100) / distancia; // A 0-100 percentage of the maximum value.
      // Then trigger the movement when less than this percentage.
      isMoveTrigger = distancePercentage &lt; 50;
    }
}
if (isMoveTrigger) {
    for(pos = 0; pos &lt; 180; pos += 1) ...