The cause to use restrains is due to a previous knowledge (i.e. experimental) of system behavior/characteristics that you want to include/retain/reproduce in your simulations.
In the case of protein-ligand complex simulations, they encode specifically prior knowledge about the macromolecular system to be simulated and is built of several components. These ...
I'd use OpenMM's openmmforcefields package, which is available on GitHub.
I haven't used it extensively, but I recommended to a student in a colleague's lab and they've found it useful.
Small molecule force fields:
GAFF 1.x and 2.x parameters
Biomolecule force fields:
Amber-type (albeit not Amber ff19SB yet)
And it will, if ...