It’s probably the doors. All home automation is local, and different materials block different amounts of signal. Glazing can be one of the problematic ones.
A lot depends on how much money you want to spend. Some people put a wired networked receptacle on an outside wall in a shelter position, and let the signal travel from that to one on the outside wall of the next building.
Some find a clear single glass window in the first building, positioning repeater near that, and let the signal back through that way.
Some find that there’s enough air leakage around a wired receptacle inside the house but on an outer wall pointing towards the outbuilding that you can get signal that way.
Some people stick a micro relay inside the wall in each building just to find more passable materials. Or put a relay on an outdoor pump or other piece of existing equipment not to get control of that device, just to get the repeater.
Depending on your weather conditions, some of the lightbulbs that can act as repeaters might work but many are not rated for outdoor use. So those are often cases where there’s a place to draw power for them but the device is unhappy anyway.
Since zwave will only repeat zwave and Zigbee will only repeat zigbe, you may have to do one of the solutions above twice, once for each protocol.
There’s no easy or instant fix. It’s just a matter of finding a place where enough signal can get through.
To be honest, it’s often cheapest just to get a second hub and set up a second “location” for your account in the outbuilding, provided you can get Internet there. Running an ethernet cable may be cheaper and more reliable than doing anything else, and then you don’t have to worry about weather blocking the signal when it rains.
You probably already looked at the range FAQ but just in case: