Can anyone explain what are the advantages of using BIP 38 Bitcoin wallet encryption to simply encrypting the private key with AES256?
Note: In short, if you do not have a strong understanding of the BIP38 encryption and decryption workflow, do not BIP38-encrypt your paper wallet. Just print your paper wallet out without encryption, and keep it safe the same way you would jewels or cash.
Just encrypting with AES provides excellent security but the weakness is the key which is unwieldily since it needs to be random binary data and the encrypted output which is also binary data. In order to use a passphrase as the encryption key a function such as PBKDF2 is generally used and the output can be base64 encoded to make it ASCII so it can be printed/written. Finally, unless you are a crypto domain expert do not roll-your-own security schemes, they generally will contain flaws rendering the security null.
Note: Scrypt is a form of Password-Based Key Derivation Function (PBKDF2) that has increased memory requirements.
BIP38 encryption provides the above and some inter ability with the crypto currency eco-system.
BIP38 does use AES behind the scenes.
This question is difficult to answer, because AES has multiple modes (ways of using it) and only some of them are secure. As Zaph noted, you also need to pick a secure key derivation function (though a single iteration of PBKDF will not suffice).
Instead of making your own implementation, why not use
gpg -c or BIP38?
BIP 38 is currently the ultimate form of cold storage paper wallets. If you print copies of your BIP38 QR codes corresponding to your private keys, and somebody steals a copy, you are probably not going to loose any money provided you have strong passwords.
Additionally, software based wallets are starting to support the importation and sweeping of BIP38 encoded cold wallets. Any BIP 38 encoded private keys are easy to spot because the begin with "6PR". These first three letters allow BIP standards-based wallets to recognize the private keys are AES encrypted and will prompt the user for a password to support importation or sweeping.