Me extraña que no haya diferencia entre uno y otro. He visto la implementación de FindComponent:
Código Delphi
[-]
if (AName <> '') and (FComponents <> nil) then
for I := 0 to FComponents.Count - 1 do
begin
Result := FComponents[i];
if SameText(Result.FName, AName) then Exit;
end;
Result := nil;
Es una búsqueda lineal, debería de tardar algún tiempo, mientras que el array es un acceso directo. Es posible que no exista diferencia por tratarse de un array dinámico.
Puedes probar a declararlo como
Código Delphi
[-]
RackCard : array [0..69] of TRackCard;
Y luego hacer la prueba dentro de un bucle de unas 100 repeticiones, para ver si realmente existe diferencia de tiempo.