Ok, this is an interesting question. I believe I might be able to give you some of my opinions, mind you, it mostly comes from experience and google, so it is not official.
Although Bulgaria is a member state (MS) of the EU it is indeed not part of Schengen yet. Usually, when a third-country national in possession of a valid residence permit/visa issued (issued under anything OTHER THAN EU law) by a MS (say Greece) travels to another MS (say Italy) they invoke Schengen agreement agreed by all participating MS (greece and italy are participating MS) and therefore travel without the need of a temporary visa to other MS (Italy) being travelled to. Since Bulgaria is not a participating Schengen country your spouse cannot make use of the Schengen agreement.
However, if the spouse has a Residence card/Permit/Visa issued under EU law, typically 5 years validity (Family member of a Union/or EEA/or EU national) super seeds the Schengen agreement and therefore grants the 3rd country national the right to travel while travelling together/joining the EU national (in this case OP danish) under article 5 of directive 2004/38, this is the law behind it.
The problem arises when airline workers who do know the law to the full extent and take the easy way out by refusing the boarding of 3rd country national.
You could also apply for the entry visa at the german embassy for the 3rd country national under EU law, armed with a family relationship, proof of exercising treaty rights (please refer to directive 2004/38 for more details or check the forums) and proof that you are travelling with the 3rd country national.
OR take these proofs to the land border at Greece, show your spouses art.10 residence card, technically they should let you in/ worst-case scenario, they are obliged to give the entry visa (greek, Schengen) on the spot and travel henceforth to Germany.
P.S say, if you do not have a work contract already in germany, make sure you have enough proof of funds for subsistence for you and family members.