It’s similar to the benefit f-strings offer over using string formatting on literal strings: the reader doesn’t have to mentally interpolate the values into their corresponding locations.
There’s also a slight performance advantage, since the template gets parsed into text segments and interpolation fields at compile time rather than runtime (again similar to f-strings vs dynamic string formatting).
https://docs.python.org/3/library/string.html#custom-string-formatting is the stdlib tool for processing format strings at runtime.
With PEP 750, it’s feasible to write a custom formatter that produces a template object placeholder field values from a regular string.