QQuickItem::cursor is not a property - there is only a non-invokable setCursor. So, there is no way from QML to set the cursor on an Item in general - only on MouseArea. But since these particular items are for entering text, and they do allow setting the text cursor position via the mouse, they ought to behave like any other text-input widgets in any other widget toolkit (including Qt's).
Alternatively we could make cursor (or cursorShape) into an Item property, if someone thinks there's something wrong with changing the default cursor suddenly.
The workaround in QtQuick.Controls is to put a MouseArea on top. ( src/controls/TextArea.qml:845) That MA has other uses besides changing the cursor, but in simpler use cases this kind of hack should not be necessary.