Because it wasn't created efficiently for that. Keep in mind that you don't have control over the SQL statements that are being sent. FM interprets a user's actions and then tries to create a query to match what you are asking of it. Sometimes it is perfectly fine and other times very very inefficient, depending on what the structure and action given. It is best suited for ancillary activities to a core system IMO.
Calculation fields created in FM in the shadow table of your SQL table will be unstored calculations and not indexed. It is better to create the calculation in the view or table in your SQL table itself. As for what UI changes that should be made etc TBH I am sorry to have some bad news for you... It would take a lot more than the forums to create an efficient system. It just takes a lot of experience and trials, a very good understanding of SQL besides just basic SQL selects, and then knowing when to leverage the native SQL system features where you can.
Again for things such as simple relationships and simple searching, you may want to give it go as it should be efficient enough. However, if it gets pretty complex then better to find a work around.
I would start here and then also read all the additional resource info.
https://www.filemaker.com/learning/custom-app-academy/205/external-sql-sources-ess.html