You can only earn one chest per champion per season. Once you earn a chest on a champion, you can no longer earn another chest while playing as that champion until next season. If you play the same few champions over and over again, then you will only earn a few chests.
To add on to this, if a teammate gets an S- or better, the chest you would get counts for the champion that you were playing that game, not the one that they were playing. So if you were playing a champion that you have already gotten a chest for when a teammate gets an S- or better, then you will not receive a chest.
Lastly, you do not get chests when any teammate gets an S- or better. You will only get a chest if you were in a premade party with that teammate, provided that you also meet all the other requirements as well.