The limitation is defined here: https://github.com/bitcoin/bitcoin/blob/40022fe5f2b576d023fa260eb176bde6d0779330/src/init.cpp#L855
FD_SETSIZE is default 1024 (set by system). That is the absolute maximum number of file descriptors. MIN_CORE_FILEDESCRIPTORS is 150, and nBind is default 1. Thus you can only have 1024-1-150=873 connections.
Thank you.
Is there any reason, why FD_SETSIZE is set to 1024? Do i break something if i increase this?
Depending on the system you are using, you may be able to increase it. E.g. In some versions of Linux, you could probably recompile the kernel etc with different parameters. It has been 10+ years since I've looked at this, so I don't have specifics.