Secondo me hai fatto un po' di confusione tra gli indici, ad esempio dovresti far partire i da -1 e non da 0, altrimenti il primo valore dell'array e' sempre null, poi non capisco il motivo di fare un secondo ciclo do-while... forse per controllare il numero di righe immesse? Per quello puoi usare la variabile i.
Per lo stesso motivo penso che potresti evitare anche l'utilizzo di count.
Da ultimo l'ordinamento non funziona perche' nel 2° ciclo for hai scritto i<=(count-x-1) invece di k<=(count-x-1).
Pero' se correggi ti trovi ancora qualche problema con gli indici.
Prova con questa versione, se non ti e' chiaro qualcosa chiedi pure:
codice:
import java.io.*;

class IOarray{
  public static void main(String[] argomenti){
    System.out.println("Metti:");
    BufferedReader IN=new BufferedReader(
             new InputStreamReader(System.in));
    String[] my=new String[100];
    int i = -1;
    do{
      i++;
    try {
      my[i]=IN.readLine();
    } catch(IOException e){
      e.printStackTrace();
    }
    } while(my[i].compareTo("end")!=0);

    for(int j = 0; j < i; j++){
      for(int k = 0; k < (i-j-1); k++){
        if(my[k].compareTo(my[k+1]) > 0){
          String appoggio = my[k];
          my[k] = my[k+1];
          my[k+1] = appoggio;
        }
      }
    }
    System.out.println("Risultato:\n\n");
    for(int j=0; j<i; j++)
      System.out.println("\t- "+my[j]);
  }
}