I just did a quick review and would note the following.
Google search is now VERY precise. A search for "personal trainers in Philadelphia" (without quotes) returns the results you quoted.
But a search for "personal trainers in Philadelphia AND SOUTH JERSEY)" - which is the 1st text encountered in your main content containing your keyword phrase) - puts you in #1 position in SERP.
It is possible you are diluting your effectiveness by adding the south Jersey part.
I would try removing that and putting this phrase "personal trainers in Philadelphia" - period - in the 1st sentence of your main content and see if the results change.
Your competitor seems to have done that, and even without a strong link profile it is easy for Google to see clearly and unambiguously what their site is about.