Die Erklärung ist nur halbherzig:
Bei "%xxx%" erfolgt im Prinzip ein Scan über das Feld.
Bei "%XXX" muss der Inhalt des Feldes mit diesem Wert aufhören (also rechtsbündig). Da dein Feld sicher nicht vom Typ Varying ist, hast du halt noch Leerzeichen hinter dem Inhalt und somit Endet das Feld nicht mit der Suchfolge.
Bei "%1.... %" muss ein Leerzeichen im Feld hinter dem Suchbegriff sein, sollte der Inhalt rechtsbündig stehen, wird er nicht gefunden.
Kommen wir zur Performance.
Liegt über FELD ein Index, kann SQL ggf. einen Index-Only-Zugriff machen und somit erheblich schneller einen Tablescan durchführen.
Mit der Funktion "trim(FELD)" kann der Index nicht benutzt werden, was dann zu einem tatsächlichen Tablescan führt. Dies kann man ggf. mit einem "calculated Index" wiederum beschleunigen.

Übrigens kann man auch den Tablescan ein wenig beschleunigen, wenn man möglichst wenig gelöschte Sätze in der Tabelle hat, deshalb haben TABLE-Objekte auch default REUSEDLT(*YES), denn das überlesen von gelöschtgen Sätzen mangels Index kostet auch Zeit.