Here is an approach using the maximum observation (the sufficient statistic for $\theta),$ rather than the
sample mean and standard deviation. (Of course $\mu = \theta/2$ can also be estimated by $\bar X,$ but with more variability; see Notes at end.)
Let $W$ be the maximum of $n=10$ observations from $\mathsf{Unif}(0, \theta).$ Then it is not difficult to show that $W/\theta \sim
\mathsf{Beta}(n, 1):$
$$P\left(\frac{W}{\theta} \le w\right) = P(U_1 \le w, \dots U_{10} \le w)\\
= \prod_{i=1}^{10} P(U_i \le w) = w^n,$$ for $U_i\stackrel{iid}{\sim}\mathsf{Unif}(0,1)$ and $0 \le w \le 1.$ This is the CDF
of $\mathsf{Beta}(10,1).$
Thus for $n=10,$ $$P\left(L \le \frac{W}{\theta}\le U\right) = P\left(\frac{W}{U} \le \theta \le
\frac{W}{L}\right) = 0.95,$$
where $L$ and $U$ cut probability 0.025 from the lower and upper tails, respectively, of $\mathsf{Beta}(10, 1).$
A 95% CI for $\theta$ is of the form $(W/0.9975,\, W/0.6915).$
qbeta(c(.025,.975),10,1)
[1] 0.6915029 0.9974714
In particular, consider the simulated sample of size $n=10$ below from
$\mathsf{Unif}(0, 15).$ The maximum is $W = 14.9248$ and a
95% confidence interval for $\theta$ is $(14.96. 21.58).$
set.seed(822)
x = runif(10, 0, 15)
summary(x)
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.4545 2.2264 7.1609 7.6550 13.2045 14.9248
w = max(x)
w/qbeta(c(.975,.025),10,1)
[1] 14.96265 21.58315
Notes: (1) A 95% CI for $\theta$ based on the maximum
$X_{(10)} = W$ of $n = 10$ independent observations from
$\mathsf{Unif}(0,\theta)$ has average length $0.403$ because $E(W) = \frac{10}{11}\theta.$
diff((10/11)/qbeta(c(.975,.025), 10, 1))
[1] 0.4032641
(2) Because the unbiased MLE of $\mu = \theta/2$
is $0.55W$ a 95% CI for $\mu$ based on the maximum
has average length $0.222\theta.$
.55*diff((10/11)/qbeta(c(.975,.025),10,1))
[1] 0.2217953
(3) By contrast, if we use t methods, basing the CI
for $\mu = \theta/2$ on the sample mean $\bar X$ and
sample standard deviation $S,$ a simulation estimates
the average length of a 95% CI is about $0.41\theta,$
considerably longer than the CI based on the maximum.
set.seed(822)
len = replicate(10^5, diff(t.test(runif(10))$conf.int))
mean(len)
[1] 0.4071168
(4) There are at least two similar Q & As on this site, but in my view, neither is a duplicate.
The page
linked above uses the mean and variance of a sample of size $n=10$ from $\mathsf{Unif}(0,1)$ to get CIs for
$\mu.$ A simulation shows that nominal "95%" CIs
really have coverage probability about $94.7\%$ and
proposes a more exact interval based on midrange and range.
This page uses a sample of size $n = 10$ from
$\mathsf{Unif}(\mu-.5,\mu+.5)$ and an Answer shows that
$\bar X \stackrel{aprx}{\sim}\mathsf{Norm}(\mu, \sigma=1/\sqrt{12n}),$ which is used to make a 95% CI.