With either asyncpg.connect or asyncpg.create_pool, you must pass dsn, and cannot pass host/port/user/password/etc as args.
I feel this should be mentioned in the docs or amended.
My personal solution would be a system check or try/except NotImplementedError here and fall back to loop.create_connection.