How do I export and import content types (including fields) between environments? I've been trying to find a smart way of exporting content type and all its fields from one installation of Drupal to another.
The core "Configuration synchronization" export only export the content type, but not its fields and configuration.

So far I have not met anything applicable for Drupal 8. All I can find is mentions of this functionality is possible in Drupal 7 module called Bundle Copy, which was never ported properly for 8. 

I've also tried this, however I cannot find any good documenation on how the "drupal config:import" or "drupal config:import:single" works.

Is it really so hard to export and import content types between environments or have I missed something essential?
You're on the right track with the configuration export but I am guessing you did the single export option for the content type. Each field on your content type has several configuration items that should be exported too.
An alternative is using the Features module. This will allow you to select your content type. It will also automatically gather up all the required configuration items for exporting them.