Which is the difference between a routing daemon and a router configuration? For example using BIRD you can set up a BPG session, but you can always set up a BGP session for example using a CISCO router, using its syntax.
BGP is an industry-standard routing protocol defined IETF with several RFC standards. But defining something as a standard is not enough. It is saying something like "you can build your house according to these blueprints" yeah cool but you need a lot of tools and work hours to build that house.
It is the same with your question. BGP is there but somebody needs to put these IETF standards to their code / OS to be used by us. Companies like Cisco, Juniper, Extreme networks does this but you have to pay for them to use their hardware/software as you mentioned in your question "you can always set up a BGP session, for example, using a CISCO router, using its syntax."
What if you don't want to pay a Vendor for using BGP?
You can go for Linux obviously but Linux itself does not include BGP sourcecode natively. Thus there are some projects like BIRD, Quagga (forked into FRR), ExaBGP, ... etc. These projects provide you source code which enables you to run BGP on a Linux box. When you run one of this code on Linux it sits in the background and processes BGP routing for you. These programs sitting in the background are called "daemons".
You still need to do interface and BGP configurations, but commands are most likely not user friendly like Cisco.