It's not any more difficult to sign a message with a segwit address, but it can be difficult to verify the signature. There is no standard for segwit signatures, so software clients that allow you sign a message with a segwit address have implemented their own. It's been my experience that a message signed in Electrum with a segwit address can only be verified by Electrum.
Bitcoin core allows messages to be signed only with a legacy address, or at least that's how V0.21.0 worked. I haven't tried to sign a message with a segwit address using V0.21.1, but there's nothing in the change log that suggest this has been changed.
Actually, you can sign a message using the private key.
Use signmessagewithprivkey and Bitcoin Core will directly sign a message with the private key provided and thus would be a workaround for the problem. The signature validates with Electrum as well as the way it uses the signed message is the same. Note that this is only a workaround and it doesn't mean that Bitcoin Core will validate any signatures from segwit addresses, nested or bc1.