Looks like AI is using offensive roam as the garrison orders. This seems to lead to a behaviour where a garrison fleet will pointlessly attack an overwhelming enemy fleet in the neighbouring non-friendly gravity well, get destroyed and then will trickle single ships to that gravity well as they get constructed by the garrison. So the garrison fleet is wasted for nothing.
Suggested fix: have the AI players default to defensive roam instead. That way they get more out of the garrison units.