потому что в момент OnCreate переменная Form2 еще не инициализированна (ну или там указатель на другой экземпляр формы, если переменная переиспользуется). Надо использовать Self:
Код:
procedure TForm2.FormCreate(Sender: TObject);
var
Memo : TMemo;
Button : TButton;
begin
Button := TButton.Create(Self);
Button.Parent := Self;
Button.ModalResult := mrOK;
Button.Top := 8;
Button.Left := 8;
Button.Caption := 'OK';
Memo := TMemo.Create(Self);
Memo.Parent := Self;
Memo.Top := Button.Top + Button.Height + 8;
Memo.Left := 8;
Memo.Lines.Text := 'Created in OnCreate';
end;