This is an unstored calculation so FileMaker has to perform the query each time it is referenced.
I've recently read that since FileMaker isn't based on an SQL engine like most DB systems, it has to run an interpreter in order to run such a query...
So those factors may also apply here.
But what you are doing with a query could also be done with a scripted find using the * wildcard so it might be interesting to try that option and see if the performance is any better using that method. (assuming that company and customer name fields are indexed...)
For examples of scripted finds, see: Scripted Find Examples