Its really hard to help since the script is in fact broken. Tough probably thats a copy pasting error. But a quick guess would be your running tha proc but not calling it.
Some scripting tips tough:
Fisrtof you should avoid changing selections in scripts. Second you should avid using GUI wrappers in your scripts if you can. So don't use newCluster, its probably the stupidest wrapper in the entire factory scripts arsenal, cant for earth of me understand WHY anybody would bother wrapping something with itself, it simply has to be a residue of some debugging. Thus instead of:
select $vrts;
string $cl[] = newCluster "-relative -envelope 1";
select -cl;
Use:
string $cl[] = cluster -relative -envelope 1 $vrts;
Which not only is shorter is also significantly faster, uses less memory and simpler to use. And so on for all lines with doDelete.
Back to the script itself:
It makes not much sense because you do something and then you delete the something you did. If you look at what you DO then it looks as following, make a group thats located at the vertex. Ok so your doing a lot extra here, So the body your script should look more like:
string $selVerts[] = `ls -sl -fl`;
for ($vert in $selVerts) {
float $pos[] = `pointPosition -w $vert`;
string $jnt = `joint {}`;
string $grpJnt = `group`;
move -a $pos[0] $pos[1] $pos[2];
}
Nothing wrong with the approach per see tough since mel is quite often done like this but not here perhaps because its easier to read this. And code is about readability mostly.