The comment is not correct.
Both:
virtual ~A() = default;
and
virtual ~A() {}
are user declared. And the implicit move members are inhibited if the destructor is user declared.
[dcl.fct.def.default]/p4 discusses user-declared and user-provided special members:
A special member function is user-provided if it is user-declared and
not explicitly defaulted or deleted on its first declaration.