When AO3 was new and we were all coming from Livejournal (and maybe Dreamwidth, but that was also new), I did some comparisons.
The core of Livejournal expression was the userpic - a 100x100 pixel square, not allowed to be bigger than 40kb. (They're now allowed to be 100kb at LJ.)
This is 33kb, a bit less than the limit. Tiny image. Not much compared to modern gifsets.
You can put over 9000 words of text in the same amount of disc space.
That gif is worth 9000 words. A 40kb image would allow for over 10k words.
So much of the modern internet - the social media craze - is founded on free image uploading. Before Tumblr, before Twitter allowed images, before every social site allowed image hosting - it was a huge hassle to find a place that let you upload images for less than $5 a month.
LJ had free icons, just a handful for free accounts. More for paid accounts, but... you could always make new free accounts. And there were people who chopped their artwork into 100x100 pixel squares and uploaded them as userpics and used that as their image hosting.
AO3 would like to host images. But
Image hosting is expensive, and
Image hosting comes with legal hassles that text hosting doesn't.
In the US, there are no laws about what kinds of text you can share with minors. An 8-year-old can go to the library and read 50 Shades of Grey. But there are laws about what kinds of pictures you can share with minors - so if AO3 hosted images, they'd have to start paying attention to people's ages. Right now, they have a disclaimer: Don't Look If This Is Bad For You, including if it's illegal for you. But they're not required to restrict mature text from young readers; they're just being polite.
(Note: Australia and probably some other places have laws about what kinds of text minors can see. But AO3 is not hosted in Australia.)
If AO3 hosted images, they'd have to find more solid ways to restrict them. And they'd have to deal with increased hosting & access costs. There may be ways to do this, but they're not simple and easy to implement, especially for a site dedicated to user privacy.
Any site you see that has free, unlimited image hosting - it desperately needs to make enough money to cover that, and all the social sites are constantly trying to find new ways to make someone pay for all those pictures and soundbits and videos. Subscriptions, advertising, blockchain wtfery, API costs... anything.
Any time you see a site with "free" picture hosting, ask yourself who's paying for it. Ask what they're getting for their money.
On the one hand: Disc space is a hell of a lot cheaper than it was 20 years ago. And the internet is faster. Image hosting costs less now than it did in the Livejournal era.
On the other: Images are often bigger now. And people expect free unlimited image hosting.
Text hosting is so very, very cheap by comparison.
100x100 icon vs 10,000 words of text. Maybe even more, as the database counts things - raw text with no formatting is even smaller.