Your array is too huge to fit in the physical RAM on both systems:
110000 * 80000 * 3 * 8 / 1024 / 1024 / 1024 = 196.[69] GB
However it depends on your system how it deals with the memory-request and how it "stores" the memory. For example the system could simply "reserve" memory for your process but postpones the actual allocation until the memory is read/modified. And even if the memory is allocated the memory can be compressed (as noted in the comments, thanks @Martijn Pieters) and having lots of zeros can be compressed really well - however as soon as you modify the memory the compression will become less efficient and more "real memory" is used.
That means it's up to the system when it fails (both will eventually fail if you actually do something with the array). Windows in your case chooses to fail immediately when you request more physical memory than you have. On Mac it seems like you have to modify "enough" values (see also this answer on "Why a 352GB NumPy ndarray can be used on a 8GB memory macOS computer?") until it fails.
import numpy as np
arr = np.zeros((110000,80000,3)) # MemoryError on Windows
arr += 10 # MemoryError on Mac
You could use for example psutil
to check the amount of memory used (physical and virtual):
import psutil
print(psutil.virtual_memory())
# svmem(total=4170924032, available=1666629632, percent=60.0, used=2504294400, free=1666629632)
arr = np.zeros((10000, 10000))
print(psutil.virtual_memory())
# svmem(total=4170924032, available=1664675840, percent=60.1, used=2506248192, free=1664675840)
arr += 10
print(psutil.virtual_memory())
# svmem(total=4170924032, available=864059392, percent=79.3, used=3306864640, free=864059392)
So even on Windows the np.zeros
doesn't immediately "use" the physical memory until it is needed.
How could I deal with this problem ?
The easiest (but probably most costly) option would be to buy (a lot) more RAM. But you could also try to "chunk" the processing with chunk sizes that fit into your physical memory. Ultimately the best solution would be to rethink your approach/algorithm so you don't need that much memory.