Do you have some special settings for your DHCP lease time (like unusually long or short)?
With WiFi, sending broadcast and multicast packets is a very "expensive" operation, because those must be sent at the lowest common data rate (for example 6 Mbps or even only 1 Mbps), which means it takes significant more airtime (which is shared among all clients) to send fewer packets, compared to normal unicast traffic. So the access point systems will have several tricks and settings to try to minimize broadcast and multicast traffic.
ARP is broadcast, with that hosts send messages to everyone to discover which MAC address is associated with a particular IP address. On UniFi APs when you turn one Proxy ARP (which is not the same as the proxy-arp mode on RouterOS!), the AP will read the ARP responses, and remember which IP addresses are currently associated with which MAC address. Later, when it sees an ARP query broadcast message, if the address is already in its cached list, it will send the ARP response directly, without having to forward the broadcast packet to all the clients and relaying the response. This reduces broadcast traffic, even more if there are many clients.
On RouterOS the DHCP server has a conflict-detection setting that is by default yes. When the setting is active, and the DHCP server gets a request from a DHCP client for a lease, after getting an available IP address from the address pool, the DHCP server will send ARP broadcast asking "who has this IP address". If it gets back a response, and the MAC address in the response doesn't match the MAC address of the DHCP client, then it's considered that the address is currently used by another device, which is a conflict. It probably creates the lease with the 00:00:00:00:00:00 MAC address to remember this (address in used) and asks the pool for a new IP address and retries.
My guess is that the UniFi APs are caching the ARP entries for too long, longer than the configured DHCP lease time on RouterOS, or if not that, caching them long after the devices have disconnected/left the network. So, while on RouterOS an address is already marked as free/available, it's still in the Proxy ARP cache of the UniFi APs. When the DHCP server tries to gives that address to the DHCP client, and sends the ARP broadcast, the access point responds with the MAC address of the previous owner, and the RouterOS DHCP server has to mark the address as used and pick a new one.
In my networks with UniFi APs and RouterOS routers I don't have Proxy ARP turned on in UniFi. But on the router, I usually turn on "Add ARP For Leases" on the DHCP server instances, and then set the ARP mode of the bridges and VLAN interfaces to reply-only. With this reply-only setting the router will never send ARP queries on the interfaces and will only trust its own ARP table, that has entries populated by the DHCP server, as well as manually added static ARP entries for every device not using DHCP. This helps reduce ARP traffics, while also adds a bit more security.