Atualização 2020 : Observe que o ASP.NET Core 3 e superior agora dependem do .NET Core e não podem mais ser usados no .NET Framework. A descrição abaixo é para o ASP.NET Core 1.x-2.x; a separação de camada ainda é verdadeira para o ASP.NET Core 3.0, mas a camada do ASP.NET Core não pode mais ser usada na parte superior do .NET Framework no 3.0+.
O .NET Core é um tempo de execução. Ele pode executar aplicativos criados para isso.
O ASP.NET Core é uma coleção de bibliotecas que formam um Framework para a criação de aplicativos Web. As bibliotecas do ASP.NET Core podem ser usadas no .NET Core e no "Full .NET Framework" (que acompanha o Windows há muitos anos).
A parte confusa é que um aplicativo que usa as bibliotecas e ferramentas do ASP.NET Core é geralmente chamado de "ASP.NET Core Application", que em teoria não diz se foi criado para o .NET Core ou .NET Framework. Portanto, um "aplicativo principal do ASP.NET" também é ".NET Core Application" ou ".NET Framework Application".
Esta imagem mostra a relação das tecnologias envolvidas (retirada desta postagem do blog )
Aqui você pode ver que o ASP.NET Core é construído "sobre" o .NET Framework e o .NET Core, enquanto o "ASP.NET" (agora conhecido como "ASP.NET clássico") é apenas o .NET Framework.