Schmeichel kept the home side at bay with a string of second-half saves, while Reading substitute Michail Antonio hit a post after 87 minutes with their best chance.
"Reading have some good attacking options and the changes they made in the second half made it difficult for us," said Grayson.
"My players put their bodies on the line and our keeper made some great saves. It was our first clean sheet in 11 games but we didn't have the attacking side that we have had in recent weeks. We didn't really test the keeper."
Only a great stoppage-time save from Schmeichel's opposite number Adam Federici denied Leeds captain Jonny Howson, but Grayson conceded his side struggled to create opportunities.
"I don't know why it was missing in the final third. Sometimes you lose your spark or maybe it's good defending by the other side," he said.
"Ask any manager, if you get everything right in every game you would be in the Premier League. Kasper made some good saves and they missed some chances."