The basic problem is simple: If there are not enough players at any time that want to play a certain format (say 3-player games with only human players), the game server cannot match them because they are no such players. The host of such a 3-player game will wait, maybe a minute, maybe more, and then do something else (on his PC/tablet/phone or IRL). If, after some time, some other player joins that table, he will wait for a minute (or more), but the host is not there, so the new player leaves, trying some other table.
The original host will look at his table once in a while, will (in most cases) not see anybody having joined the table (because the interval he checks in is longer than the new player will wait at his table), and continue to to something else.
Meanwhile the "other player" has the same experience a couple of times, and will finally say "I make a table with a 3 player game". After he does this, nobody joins him (lack of players for that format, remember?), and after some time he will do "something else" (because nobody wants to wait excessivly) and the cycle repeats.
The current table situation makes this worse as there are possibly many tables open each for format, but they are not matched against each other. If would possibly be better if you could not only be matched by the game server on 2 player games but on 3 or more player games as well. Then the person who created a table because he wanted the recreate his latest IRL dominion game can do that, and players who simply want to play a 2-3 player game can be matched with him.