Erwägungen:
1.
Mit Eingabe vom 6. Februar 2021 gelangte der Beschwerdeführer an das Bezirksgericht Horgen. Das Bezirksgericht nahm die Eingabe als Beschwerde gegen die Betreibung Nr. xxx des Betreibungsamtes Zürich 3 entgegen. Mit Beschluss vom 11. Februar 2021 trat es auf die Beschwerde mangels örtlicher Zuständigkeit nicht ein und überwies die Eingabe an das Bezirksgericht Zürich. Mit Zirkulationsbeschluss vom 14. April 2021 trat das Bezirksgericht Zürich auf die Beschwerde nicht ein.
Dagegen erhob der Beschwerdeführer am 23. April 2021 (Poststempel) Beschwerde beim Obergericht des Kantons Zürich. Mit Beschluss vom 10. Juni 2021 trat das Obergericht auf die Beschwerde mangels genügender Begründung nicht ein.
Gegen diesen Entscheid (sowie einen weiteren; dazu Verfahren 5A_500/2021) hat der Beschwerdeführer am 17. Juni 2021 (Postaufgabe) Beschwerde an das Bundesgericht erhoben.
2.
Der angefochtene Entscheid ist ein Nichteintretensentscheid. Thema des bundesgerichtlichen Verfahrens ist demnach einzig, ob das Obergericht zu Recht auf die kantonale Beschwerde nicht eingetreten ist. Diesbezüglich hat die Beschwerde an das Bundesgericht eine Begründung zu enthalten (<ref-law>), in der in gezielter Auseinandersetzung mit den für das Ergebnis des angefochtenen Entscheides massgeblichen Erwägungen aufzuzeigen ist, welche Rechte bzw. Rechtsnormen die Vorinstanz verletzt haben soll (<ref-ruling> E. 2 S. 88 f.; <ref-ruling> E. 2 S. 116). Der Beschwerdeführer legt jedoch nicht dar, dass seine Beschwerde an das Obergericht genügend begründet gewesen wäre. Dazu genügt insbesondere sein Vorbringen nicht, er habe Beweise vorgelegt, die ignoriert worden seien. Sodann wiederholt er bloss, die Forderung sei durch einen Lohnabzug bezahlt worden. Bereits das Bezirksgericht hatte erläutert, dass Bestand und Höhe der in Betreibung gesetzten Forderung nicht Thema des Beschwerdeverfahrens nach <ref-law> seien, womit er sich vor Obergericht nicht auseinandergesetzt hat. Das Verhalten der KESB Horgen ist schliesslich nicht Gegenstand des vorliegenden Verfahrens.
Die Beschwerde enthält offensichtlich keine hinreichende Begründung. Auf sie ist im vereinfachten Verfahren durch das präsidierende Mitglied der Abteilung nicht einzutreten (<ref-law>).
3.
Bei diesem Ausgang des Verfahrens trägt der Beschwerdeführer die Gerichtskosten (<ref-law>). Am Rande spricht der Beschwerdeführer vom Anspruch auf unentgeltliche Rechtspflege, doch ist unklar, ob er sich auf das vorliegende bundesgerichtliche Verfahren bezieht. Ein entsprechendes Gesuch wäre infolge Aussichtslosigkeit der Beschwerde abzuweisen (<ref-law>).

Demnach erkennt das präsidierende Mitglied:
1.
Auf die Beschwerde wird nicht eingetreten.
2.
Die Gerichtskosten von Fr. 500.-- werden dem Beschwerdeführer auferlegt.
3.
Dieses Urteil wird den Verfahrensbeteiligten und dem Obergericht des Kantons Zürich, II. Zivilkammer als obere kantonale Aufsichtsbehörde über Schuldbetreibung und Konkurs, schriftlich mitgeteilt.
Lausanne, 2. Juli 2021
Im Namen der II. zivilrechtlichen Abteilung
des Schweizerischen Bundesgerichts
Das präsidierende Mitglied: Escher
Der Gerichtsschreiber: Zingg