Ага я понял (посмотрел сорцы), в этой перегрузке TextField() стейт лежит внутри компонента, а твой параметр value используется как начальное значение и при этом onValueChange отрабатывает как обычно.
Чёт я переживаю, что ютуб недалеко от этого щас находится со своими а) "помогите рекламодателям, ответьте на небольшой опрос" (спасибо, хоть скипнуть пока можно) и б) безусловным показом рекламы на всех роликах, а не только на тех, где автор монетизацию включил, с июня