I thought "the black cat is laying on the grass" would be acceptable
It's not, though. To lay is to put something somewhere; to lie is to be somewhere. Duo maintains this distinction, though many native speakers do not.
I put lies in the grass and it was marked wrong. that would be more common in english.
"Die Katze liegt im Gras" would be more common in German as well.
I think it concern of the height of the grass. For 2 inch high grass I am for "auf", while for 10 inch high grass "in" works well.
"The black cat lies in the grass" is marked as wrong here, but it would be a better translation. The German sentence is also wrong. Human intervention is needed here, to fix what an algorithm can't do.
Is "The black cat lies upon the grass." not quite an accurate translation?
General question- Does Gras also used for marijuana same as in English?
Yes.
(But we don't use Unkraut "weed" for marijuana.)