سلام. این اتفاق طبیعی است چون اینها دو محیط جداگانه هستند و زیر هم قرار میگیرند. شما باید محیط tikzpicture را در داخل محیط ریاضی قرار بدهید. کد زیر را ببینید.
\documentclass{article}
\usepackage[margin=1cm]{geometry}
\usepackage{tikz, amsmath, amssymb}
\usetikzlibrary{arrows.meta}
\begin{document}
\[ f(x)=
\begin{cases}
0,& -\pi<x\leq 0 \\ x^2,& \phantom{-} 0<x\leq\pi
\end{cases}
\begin{tikzpicture}[axis/.style={gray, thick, -Stealth}, baseline={(current bounding box.center)}]
\draw [axis] (-6,0) -- (6,0) node [right, black] {$x$};
\draw [axis] (0,-0.5) -- (0,2) node [left, black] {$y$};
\draw [gray, thick] (2pt,1) -- (-2pt,1) node [left, black,xshift=3pt, yshift=4pt] {$\pi^2$};
\foreach \x/\label in {-5/-5\pi, -4/-4\pi, -3/-3\pi, -2/-2\pi, -1/-\pi, 1/\pi, 2/2\pi, 3/3\pi, 4/4\pi, 5/5\pi}
\node at (\x,-10pt) {$\label$};
\foreach \T in {-4,-2,0,2,4}
{
\draw [red , very thick, variable=\x, domain=0:1, samples=50, xshift=\T cm] (-1,0) -- plot ({\x},{pow(\x,2)});
}
\foreach \x/\y in {-4/0, -3/1, -2/0,-1/1, 0/0, 1/1, 2/0, 3/1, 4/0, 5/1}
\filldraw [fill=black, draw=black, thick] (\x,\y) circle [radius=2pt];
\foreach \x in {-5,-3,...,5}
\filldraw [fill=white, draw=black, thick] (\x,0) circle [radius=2pt];
\end{tikzpicture}
\]
\end{document}

گزینه
baseline={(current bounding box.center)}
باعث میشود محیط ریاضی و محیط tikzpicture بهلحاظ عمودی همتراز شوند. شما میتوانید بهجای center، از جهات جغرافیایی دیگر یعنی east، west، north، south، north east، north west، south east یا south west استفاده کنید. در صورتی که با این گزینهها به مطلوبتان نرسیدید، میتوانید از گزینه
baseline={([yshift=2cm]current bounding box.center)}
 که مقدار 2cm بسته به شکل شما تغییر میکند، بهره بگیرید.
ضمناً بهتر است برای اعمال تکراری از حلقه استفاده کرد که باعث کوتاهی کد و خواناتر و زیباتر شدن آن میشود. از همینرو من کد شما را به کمک \foreach ویراستهام. در ضمن چون من تا به حال  محیط Bflushleft را ندیدهام و استفاده از آن در کد من با خطا همراه بود و نمیدانم به کمک چه بستهای از این محیط استفاده میکنید، این محیط را با \[ \] جایگزین کردم.