Absolwentka Akademii Muzycznej w Łodzi w klasie prof. Delfiny Ambroziak (dyplom z wyróżnieniem) oraz studiów podyplomowych Akademii Muzycznej we Wrocławiu w klasie prof. Ewy Czermak.
Ukończyła kursy mistrzowskie u prof. Barbary Schlick, prof. Ingrid Kremling i prof. Ewy Czermak w ramach festiwalu Wratislawia Cantans, Ryszarda Karczykowskiego, prof. Teresy Żylis-Gara oraz u prof. Heleny Łazarskiej w ramach International Summer Academy Mozarteum w Salzburgu.
W 2006 była stypendystką Ministra Kultury i Dziedzictwa Narodowego. W 2012 stypendystka Richard-Wagner Stipendienstiftung w Bayreuth.
Jest laureatką wielu konkursów, m.in. Konkursu Pieśni Polskiej w Warszawie (2007), konkursu „La Boheme” w Weronie (2009), a także VIII Konkursu Moniuszkowskiego – nagroda specjalna dla najlepszego sopranu koloraturowego oraz najlepszej polskiej śpiewaczki (2013). W 2016 roku uhonorowana Nagrodą im. J. Kiepury dla Najlepszej Śpiewaczki.
W kwietniu 2007 będąc na czwartym roku studiów, debiutowała na scenie Teatru Wielkiego w Łodzi rolą Rozyny w premierowym przedstawieniu Cyrulika Sewilskiego G. Rossiniego. Za to przedstawienie otrzymała Złotą Maskę w kategorii „Najlepszy debiut sezonu”.
Od 2008 do 2017 roku była solistką Opery Wrocławskiej, gdzie debiutowała w marcu 2008 partią Królowej Nocy w Czarodziejskim Flecie W. A. Mozarta. Na tej scenie występowała w wielu rolach: przede wszystkim jako Olimpia w Opowieściach Hoffmanna J. Offenbacha, Adina w Napoju miłosnym G. Donizettiego, Łucja w Łucji z Lammermoor G. Donizettiego, Sophie w Kawalerze Srebrnej Róży R. Straussa, Musetta w Cyganerii G. Pucciniego oraz Leila w Poławiaczach Pereł G. Bizeta.
Występowała na festiwalach operowych: Sommerfestspiele w Xanten, Schlossfestspiele w Regensburgu, Saaremaa Opera Festival w Estonii, Bergen Nasjonale Opera w Norwegii.
W sezonie 2017/2018 współpracowała z Pfalztheater Kaiserslautern wykonując role: Leila w Poławiaczach Pereł G. Bizeta, Łucja w Łucji z Lammermoor G. Donizettiego oraz Ann Truelove w Rake’s Progress Igora Strawinskiego
W Teatrze Wielkim Operze Narodowej w Warszawie wystepowała kreując partie Królowej Nocy w spektaklach Czarodziejskiego Fletu W. A. Mozarta w produkcji z Komische Oper w Berlinie w słynnej reżyserii Suzanne Andrade i Barrie Kosky i partie sopranowa w premierze Carmina Burana Carla Orffa.
Rolę Królowej Nocy w spektaklach Czarodziejskiego Fletu oraz Konstancji z Uprowadzenia z Seraju W. A. Mozarta, kreuje także w Warszawskiej Operze Kameralnej a Kundegunde z Kandyda L. Bernsteina oraz Rosę z Don Bucefalo A. Cagnoni w Operze Bałtyckiej w Gdańsku.
Współpracowała z dyrygentami takimi jak: Tadeusz Kozłowski, Ewa Michnik, Andriy Yurkevych, Friedrich Heider, Jose Florencio, Ruben Silva, Łukasz Borowicz, Jari Hamalainen, Anne Randine Overby, Bassem Akiki, Matteo Pagliari, Samuel Hogarth, Uwe Sandner, Jakub Klecker, Francesco Bottigliero, Andrzej Straszyński i Jacek Kasprzyk. Brała udział w produkcjach reżyserów takich jak: Kerstin Maria Pohler, Susanne Andrade, Barrie Kosky, Mariusz Treliński, Michał Znaniecki, Irina Brook, Rocc, Georg Rootering, Urs Häberli, Waldemar Zawodziński, Michał Zadara i Anette Leistenschneider.
Joanna Moskowicz mówi po polsku, angielsku i rozumie język niemiecki.