The other day I was playing in a game soccer and the ball deflected into an empty space. Myself and an opposing player started to chase the ball down when I was called for a foul. We were running shoulder to shoulder when I did what could be described as a "swim move" to establish position. I did not push, grab, or trip the other player. Why was a foul called?
A direct free kick is awarded if a player commits any of the following offences:
- holds an opponent
... A player may shield the ball by taking a position between an opponent and the ball if the ball is within playing distance and the opponent is not held off with the arms or body.
(while the above section is in the indirect free kick Laws section, it is there to explain the difference between impeding i.e. shielding the ball when it is not in playing distance of either player and holding, which as seen above, is a direct free kick offence)
Applying this to your scenario, you did not grab the opponent, but you did use you arm to hold off the opponent from getting to the ball. Based on this, the referee correctly awarded a direct free kick.