Has the impeller been changed lately? It is possible that the shift linkage was not adjusted properly at the end of the shift rod that comes out of the lower unit or the nuts on the shift rod have come loose. The lower unit shift rod joins the shift rod going up to the motor in the opening just above the front of the lower unit. You need to put the shifter into reverse for the two nuts to come down enough for you to get to them. If you can adjust so that the lower rod is down more, you will get more reverse. There is a long nut on top and a small nut locked up against the long nut. You will need two wrenches to unlock them for any adjustment or disconnect.
The other thing that can be wrong could be...
If you or someone tried to shift the motor in and out of gear without the motor running or without someone turning the prop..the clutch dog may not be in the right spot and it will not go into gear. If the person continues to try to put into gear and forces it, it can crack the plastic lever at the top of the motor that connects to the rod going down to the gear case. It will allow you to pull it into forward but would give just enough not to put it into reverse.
Of course, you could also have something wrong in your lower unit. You can disconnect the shift linkage on the lower front of the engine (as mentioned first above) and manually push the shift rod down with a pliers. Turn the prop as you try to shift it. If it clicks into gear...then pull the shift lever back to neutral then up for forward. If everything clicks smoothly and goes into gear, the lower unit is probably ok. If not...it is not.
Lots of things to check..
Mike