sp. is short for unspecified, usually it's to note a species that is either not formally described, or in the cases of some sellers, a species that they don't have a proper identification for.
Most tank-bred greens that have been farm-bred for 40+ years are sold under the name Heros efasciatus but in all honesty they are probably mutts that have been interbred. Years ago before the splitting began, severums were all considered the same fish and so breeders probably crossed whatever fish they got their hands on. I'm sure it's why tank-bred fish are so highly variable in terms of size, color, etc. Golds were derived from these tank-bred fish, and super reds are supposedly line-bred golds, though I have my doubts and wonder if some hormoning or something is going on (most of the super reds are sterile, and those that produce fry usually throw gold fry).
There are currently only five valid, distinct species that are formally described:
Heros efasciatus (the greens)
Heros notatus (the black-spotted fish from Brazil/Guyana)
Heros liberifer (the mouthbrooder)
Heros spurius
Heros severus (the red-necked fish with the half seventh bar, from Colombia/Venezuela)
Then you have fish that are currently undescribed, so they take on a name usually of the location where they're found. The exception to that is rotkeil, which is German for "red wedge."
Heros sp. rotkeil
Heros sp. Inirida (the 8-barred, red spotted fish from Rio Inirida)
Heros sp. Tapajos
Heros sp. Santarem
Heros sp. Manaus
The list goes on. Essentially any Heros collected that isn't easily identifiable as one of the described species is given a location name. It will be up to ichthyologists to decide if they warrant their own separate species, or if they're just regional variants of the same fish. Kullander, for instance, grouped the turquoise severums (Heros appendiculatus) into Heros efasciatus, despite clear differences between the two. I don't know that I agree with it but he must have had his reasons.