Three reasons for TUIs:

Speed of rendering

Consistency / limited styles

Keyboard controls

It is possible to achieve this other ways. But what’s interesting that for example Visual Basic or Borland C use a windowing concept