Passive mobs (including animals) can only spawn if no passive mobs currently exist in loaded chunks. Or, more accurately, less mobs than the passive mob cap. Mobs in unloaded chunks don't matter.
Note that the spawn chunks are always loaded.
If you are on a server with other players, there is a fair chance that mobs exist on chunks loaded by other players. Or that mobs exist on the spawn chunks even if there are no other players currently online.
On a modded server there is the extra possibility of chunks loaded by chunkloaders, even when other players are not online.
Additionally on public servers the mob spawning mechanics are often altered in order to manage lag. You'll need to ask the admin about this.
Well made skyblock modpacks usually include alternative methods for getting passive mobs exactly for these reasons.