Why don't we automatically have outliers when mean and median differ strongly? Assume you have a data set with information on income of all students in the lecture. The mean value is 1500\$. The median value is however only 800\$. Which of the following conclusions is wrong?
The answer is: The difference between median and mean can be explained by outliers.
Why is this wrong? When Mean and Median deviate in such a manner, there have to be outliers or am I completely wrong? I can check outliers with |z| > 2.5 or a boxplot with IQR*1.5
But why do there not have to be outliers in such a case? I am completely lost and cannot think of a data set that fulfils such a case. Could you please help me?

Sometimes a sample with a mean larger than the sample median can have boxplot outliers, as you say. (Sometimes many outliers.) The exponential sample with $n=1000$ observations below illustrates this. [Using R.]
set.seed(128)
y = rexp(1000)
mean(y); median(y)
[1] 1.029919
[1] 0.679321
boxplot(y, horizontal=T)
 abline(v=mean(y), col="red")

In the figure below, the heavy black line within the box shows the
sample median $0.6793$ and the vertical red line shows the sample mean $1.0299.$

The population mean is $\mu = 1$ and the population median is $\eta = -\ln(.5) = 0.6931.$
qexp(.5); -log(.5)
[1] 0.6931472
[1] 0.6931472

Below is a histogram of the $1000$ observations along with
the density curve of the distribution $\mathsf{Exp}(1).$
hist(y, prob=T, col="skyblue2")
 curve(dexp(x, 1), add=T, lwd=2, col="orange")


By contrast, moderately large samples from many right-skewed distributions have
mean larger than median, but may not have any outliers at all.
Many examples can be found among samples from beta and
other distributions.
set.seed(2022)
x = rbeta(1000, 2, 4)
mean(x); median(x)
[1] 0.3369563      # sample mean
[1] 0.3059188      # sample median
boxplot(x, horizontal=T)
 abline(v=mean(x), col="red")


The population mean is $\mu = 1/3$ and the population median is $\eta = 0.3138.$
qbeta(.5, 2, 4)
[1] 0.3138102

hist(x, prob=T, col="skyblue2")
 curve(dbeta(x, 2, 4), add=T, lwd=2, col="orange")


