You're right to point out the speed, but it is just not true that GUIs can't be fast. You can have screens that load quickly and shortcut keys etc.
You just have to make fast navigation and data entry a high priority. The assumptions and approaches people make today mean that generally isn't the case. With a TUI there is a hard limit on the amount of data you can load and that helps as a starting point.
- Often it's hitting a server is that is far away rather in the same building.
- you can put the web server in the same building
- Each page is very heavy with lots of JavaScript etc. loading - you can build lightweight web pages if you priority small script size, minimal dependencies,
and do profiling to keep things in check
- Data loading delays rendering - limit the amount of data loaded and displayed at one time
- Data is slow to load - an older system has limited capacity meaning it's not an option to keep inactive data around
- this means data is more likely to be indexed
- new systems have very large storage capacities, leading to a larger and larger growing db
- eventually default configuration for the database does not allow for everything active to be indexed
- solution is to keep inactive data out of active tables being queried for normal operations
- Slow to navigate with mouse - you can create a keyboard navigation system
- you can build keyboard shortcuts into every screen
- you can create autocomplete shortcut commands to jump to screens