1. .Net Framework и .Net Core - различные реализации интерфейсов и спецификаций, которые в народе и называют "дотнетом". Туда же - Mono.
2.
В чем разница, какую выбрать и одинаков ли на них код?
Разница в доступных API. У каждой из реализаций свой набор стандартных классов, где-то больше, где-то меньше. .Net Standard - это как рази таки ОБЩИЙ стандарт доступных API. Будете разрабатывать под .Net Standard - ваша библиотека будет работать на всех реализациях которые его поддерживают. Обратите внимание что версий .Net Standard несколько - чем старше версия тем больше доступных API, но тем больше вероятность что некая версия некой реализации не поддерживает конкретную версию .Net Standard (если нужно подробнее - поищу ссылки).
3.
какую выбрать
Выберете .Net Standard - сможете запустить везде, но не будут доступны API специфичные для конкретной реализации. Выберете .Net Framework - будут доступны все API классического Framework но портируемость может быть потеряна. Выбирайте .Net Standard пока не упрётесь (если вообще упретёсь) в то, что вам нужно API которое есть только в .Net Framework.
То, что сказал
freeExec про Standard не имеет ничего общего с реальностью, C++ и нативные dll тут не при чём.