The Matrix demo for the Wio Terminal uses hardware scrolling on the TFT display but it was not working as supplied. The fix is to add a tft.startWrite() at the beginning and a tft.endWrite() at the end of these two functions in TFT_Matrix.ino:
setupScrollArea()
scroll_slow()
Here is the cause of the failure if you are interested:
The Seeed_Arduino_LCD library supplied for the Wio Terminal is configured to use SPI transactions. This means that every write to the display controller has to be wrapped in code that starts a transaction and ends a transaction. The Matrix demo is using tft.writecommand() and tft.writedata() which does not start and end a transaction even if they are configured. If you think about this, it is not a bug. These low level functions have no idea how many parameters you are going to write. Because of this the hardware scroll never happens.
I hope my day spent trying to get hardware scrolling working on the Wio Terminal saves someone some grief!