Das musst du casten. In TCustomTaskDialog.Create wird beim Erzeugen von FButtons die gewünschte Klasse angegeben, so dass der Cast auch funktioniert.
Das ist allgemein das Verhalten von Collections im Gegensatz zu generischen Listen.
Delphi-Quellcode:
constructor TCustomTaskDialog.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FButtons := TTaskDialogButtons.Create(Self, TTaskDialogButtonItem);
FCommonButtons := [tcbOk, tcbCancel];