"Deception" is a not the issue. Most parents don't explain the legal status of their relationship to their children until the child is old enough to understand what it means. 9 may or may not be the appropriate age for this child. It is NOT, however, the right or business of the school to inform the child in any way of the issue. The appropriate response by the teacher would have been to tell "Johnny" to ask his parents.
But, long before this happened the legal issues should have been worked out and discussed with the school. Most school districts don't allow the use of a name that is not on the birth certificate unless it has been changed legally. That's to cut down on child kidnappings. I'd have to ask why the name issue never came up before? Change of school?
At this point it is time to explain the parental relationship with "Johnny". It isn't 1955, so there will be lots of classmates in the same situation. Wilson...you ARE his father (bio, or not). Just reassure him you will always be there for him no matter what. Then, be the best dad you can. Don't offer any more info than he asks for at this time. He's only 9, and doesn't need to hear all the sordid details. There is far too much "revelation" of parent's problems to the ids of unsophisticated children already. If he wants to know more later he will ask when HE is ready.
As far as the school goes, I suggest you have a talk with the teacher AND the principal at the same time. If they don't already have a written policy for this type of issue they should. maybe your intervention will make it better for other kids who don't know (or need to know) the whole story.