No downside, at least in operation, as long as the batch script actually exists in the script folder. Did you write it yourself? What I write about it depends on your answer.
Another question - do you really need to pass a parameter to the batch script?
What do you mean by WSL?
I will say this pending your reply...
If you just want to run a named batch invisibly, and you don't need to pass a parameter to the batch. this is all you need
If it is called Myrun.vbs, use it like so - Myrun.vbs batname.bat
CreateObject("WScript.Shell").Run """" & wscript.arguments(0) & """", 0, False