The problem is the depth of the movies you are duplicating (the 2nd parameter).

You can only have one movieclip at a particular depth. If you try to put a second movieclip at the same depth, it obliterates the first one. To fix, in your dup2 code, change this line:

circle2.duplicateMovieClip("circle2"+count2, count2);

to this:

circle2.duplicateMovieClip("circle2"+count2, count2 + 20);

so the second set of movies go to unique depths.

It's also worth mentioning that you could use a single function that accepts parameters, and reduce the amount of code by half.

For example:

code:

function myDupe(mc, nameRoot, minDepth)
{
for (count = 0; count < 20; ++count)
{
mc.duplicateMovieClip(nameRoot+count, minDepth+count);
}
}

myDupe(circle, "circle", 0);
myDupe(circle2, "circle2", 20);