So the answer is a resounding sometimes. First let's start with the fact that the powershell prompt is most definitely *not* the dos cmd prompt. However the developers of powershell wanted to make it as inviting as possible to both people accustom to DOS prompts and for that matter to people accustom to *nix shells. To this end powershell has very robust aliasing. So in powershell, the command to do the equivalent of dir is Get-ChildItem. To fully do what your DOS command does would be:
Get-ChildItem C:\MP3_Directory\* -Include *.mp3 -Recurse > "C:\Users ... Desktop\mp3list.m3u"
In an effort to make it feel more familiar to DOS users, the developers include a default alias Dir->Get-ChildIte. So you could do:
Dir C:\MP3_Directory\* -Include *.mp3 -Recurse > "C:\Users ... Desktop\mp3list.m3u"
But you are still running Get-ChildItem and not the DOS dir command.
Yes you can call any executeable with any parameters. So this would work fine:
Notepad.exe C:\Temp\file.txt
As for whether DOS commands work in Powershell, if they are actual executeables that are in the path and there is not an existing powershell alias with the same name then yes they work. For instance edlin works fine.
Powershell scripts end with a PS1 extension not VBS. For that matter DOS scripts are batch files (BAT extension) not Visual Basic Scripts (VBS extension). VBS files run in the Windows Script Host (WSH) not DOS.