Um das nochmal klarzustellen: Wenn man mit einem dynamischen Array of String vernünftig umgeht, und beim Befüllen des Arrays nicht ständig setLength aufruft, ist das voll und ganz in Ordnung.
Bei einer Stringlist passiert das von alleine. Allerdings gibt es da z.B. den Stolperstein mit "sorted". Wenn man das am Anfang auf True setzt, und dann die Liste Stück für Stück befüllt, ist das keine gute Idee.
Da im Prinzip beide Strukturen gleich sind (dynamische Arrays halt), sind sie von der grundlegenden Kopmplexität her gleichwertig. Man sollte nur bei einigen Dingen aufpassen bzw. etwas über die Funktionsweise wissen, um nicht auf die Nase zu fallen.
Ob die eine oder andere Struktur ein paar ms schneller ist oder ein paar Bytes spart ist in den allermeisten Fällen zu vernachlässigen. Da sind andere Dinge wichtiger, wie Luckie schon sagte. Ich arbeite in den meisten Fällen mit der Stringlist, da diese eine Reihe Methoden bietet, die ich für das Array of String selber implementieren müsste.
The angels have the phone box.