Where do you think the bottleneck is?
Is this a trick question ?
SD card speed depends. I read that it gets slower when you delete / create many files often on a card, without re-formatting the card.
What's your result ?
BTW, I would not use String for the filenames, but
static char filename[] = "fr0#.txt";
for (int tens = '0'; tens< '3'; tens++) {
 for (int ones = '0'; ones <='9'; ones++) {
   filename[3] = ones;
   // open the file for reading:
   myFile = SD.open(filename);
   // etc.
 }
 filename[2]++;
}
There might be enough space for 30 dynamic Strings besides the 512 byte data, but in a "run forever" scenario it's a bad idea...
And check that your byteCount does not exceed the limit (512) with a bad file