Why is this curve automatic closed? Why is this curve closed? I can't find out, where I can stop this behaviour.
import bpy
from mathutils import Euler, Matrix, Quaternion, Vector


if 'LIGHTNING' not in bpy.context.collection.children:
    
    
    col = bpy.data.collections.new('LIGHTNING')
    bpy.context.collection.children.link(col)


def create_lightning_Curve():
    # Create a curve-container
    lightning_curve = bpy.data.curves.new('lightning','CURVE')
    # make some settings to the container
    lightning_curve.dimensions = '3D'                                      
    lightning_curve.resolution_u = 1
    lightning_curve.use_fill_caps = True
    lightning_curve.fill_mode = 'FULL'
    lightning_curve.bevel_depth = 0.1
    lightning_curve.bevel_resolution = 0
    # create splines (or multiple curves (= splines) in a curve-container)
    coords = [(0,0,0), (1,-1,3), (2,1,6), (3,-1,10.8592 )] ##### Point coordinates
    Bezline = lightning_curve.splines.new('BEZIER')
    Bezline.bezier_points.add(len(coords))
    for i, coord in enumerate(coords):
        x,y,z = coord
        Bezline.bezier_points[i].co = (x, y, z)
    

    #Create object
    obj = bpy.data.objects.new('lightning', lightning_curve)
    # Link object
    bpy.context.collection.children['LIGHTNING'].objects.link(obj)
    return obj

create_lightning_Curve()
A spline created by lightning_curve.splines.new('BEZIER') already has 1 vertex.
So when you add Bezline.bezier_points.add(len(coords)), the spline now has 5 vertices.
When looping:
for i, coord in enumerate(coords):
        x,y,z = coord
        Bezline.bezier_points[i].co = (x, y, z)

you're setting the coordinates of the 4 first and the last stays at (0, 0, 0), which makes the spline appear as closed.