positionMask is the same as transform.position at the time of the linecast, so you are casting a line to and from the same point, which obviously can’t intersect anything.
Perhaps if you make positionMark a class field, and the only assign to it at the end of your function?
Using physics for a grenade is negligible performance wise. And it will respond natural to being throwed in any kind of arc, a short vid from our game I did to answer another question a while ago