Integer.parseInt() ti ritorna un valore di tipo "int" a partire da una stringa. Se tu usi il metodo sulla stringa "2" ti ritorna un valore int uguale a 2.

dist.length ti ritorna la lunghezza dell'array, ed e' una proprieta' del tipo array, il fatto che l'array sia di stringhe in questo caso non c'entra nulla, poteva essere di patate o carote e sarebbe stata la stessa cosa

Nel tuo caso, siccome hai inizializzato l'array facendo
"new Distributore[numDistributori]", potevi anche scrivere il ciclo cosi':
codice:
 for (i=0, i<numDistributori; i++) {
dist[i] = new Distributore ("Dist" + (i+1)); }
spero sia abbastanza chiaro...