Gibt einige Gründe.
1. Der element access schneller Um in einer verketteten liste das ite element zu erreichen musst du dich durch alle vorrigen elemente einmal durchhangeln. Bei einem array ist das eine einzige pointer operation.
2. Ein Array hat den Vorteil der cache lokalität. Wenn du also durch einen array iterierst oder auf elemente die nah bei einander sind zugreifst, hast du massive performance verbesserungen da CPUs ganze chunks von memory cachen und in einem Array der gesammte block kontinuierlich ist.
3. Das einfügen und löschen von elementen anhand eines index ist in verketteten listen viel aufwendiger. Asymptotisch braucht sowohl die verkettete Liste als auch das Array Lineare zeit. Bei der verketteten liste um den Index zu finden, beim Array um die elemente zu shiften. Konstanter aufwand ist aber bei der verketteten Liste viel höher, da du für jedes insert eine allokation machen musst (was übrigens auch massiv zur Speicherfragmentierung beitragen kann), während bei einer geometrisch wachsenden Arrayliste nur log(N) viele memory allokationen gemacht werden müssen. Außerdem ist das shiften der elemente dank cachelokalität sehr schnell, während das langlaufen einer verketteten liste verhältnismäßig langsam ist.
Es gibt praktisch nur eine situation in der eine verkettete Liste besser sein kann, und das ist wenn man ein element in der hand hat und danach ein element einfügen will (bei einer doppelt verketteten liste ist auch das löschen an dieser stelle effizient).
Und selbst hier sage ich bewusst besser sein kann, denn abbhängig von der cache lokalität, der größe des arrays, und der position an der man das element einfügen will, gewinnt auch hier der Array das rennen (beispiel, einfügen am und löschen am Ende, bei einer warmgelaufenen Liste mit geometrischem wachstum).
TList hat übrigens auch keine Iteratoren, die einzelne elemente referenzieren. Man arbeitet immer über indizes, das heißt das man so oder so für jede Operation die liste lang hangeln muss, es gibt also absolut keinen Grund das über eine Linked list zu machen. Die Vorteile einer linked list bringen nur was, wenn man auch eine API hat die einem iteratoren rauspuckt.